Migracija baze podataka programa Access na SQL poslužitelj
Applies ToAccess za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Svi imamo ograničenja, a baza podataka programa Access nije iznimka. Baza podataka programa Access, primjerice, ima ograničenje veličine od 2 GB i ne može podržavati više od 255 istodobnih korisnika. Dakle, kada je vrijeme da baza podataka programa Access prijeđu na sljedeću razinu, možete migrirati na SQL Server. SQL Server (lokalno ili u oblaku platforme Azure) podržava veće količine podataka, više istodobnih korisnika i ima veći kapacitet od modula baze podataka JET/ACE. Ovaj vodič omogućuje nesmetan početak puta za SQL Server, pomaže u očuvanju rješenja sučelja programa Access koja ste stvorili i, nadamo se, motivira vas da koristite Access za buduća rješenja baze podataka. Pomoću pomoćnika za migraciju sustava Microsoft SQL Server (SSMA) možete uspješno migrirati, slijedite ove faze.

Faze migracije baze podataka u SQL Server

Prije početka

U sljedećim odjeljcima navedene su pozadinske informacije i druge informacije koje će vam olakšati početak rada.

O podijeljenim bazama podataka

Svi objekti baze podataka programa Access mogu se nalaziti u jednoj datoteci baze podataka ili se mogu pohraniti u dvije datoteke baze podataka: pristupna baza podataka i stražnja baza podataka. To se naziva podjela baze podataka i osmišljena je tako da olakšava zajedničko korištenje u mrežnom okruženju. Datoteka krajnje baze podataka mora sadržavati samo tablice i odnose. Datoteka sučelja mora sadržavati samo sve druge objekte, uključujući obrasce, izvješća, upite, makronaredbe, VBA module i povezane tablice u stražnjoj bazi podataka. Kada migrirate bazu podataka programa Access, slična je podijeljenoj bazi podataka u sustavu SQL Server koja djeluje kao novi back-end za podatke koji se sada nalaze na poslužitelju.

Zbog toga i dalje možete održavati pristupne baze podataka programa Access s povezanim tablicama u tablicama sustava SQL Server. Učinkovito možete iskoristiti prednosti brzog razvoja aplikacija koje pruža baza podataka programa Access, kao i skalabilnost sustava SQL Server.

Prednosti sustava SQL Server

I dalje vam je potrebno uvjerljivo migriranje na SQL Server? Evo nekih dodatnih pogodnosti koje možete razmišljati o:

  • Više istodobnih korisnika    SQL Server može rukovati s mnogo više istodobnih korisnika od programa Access i minimizirati memorijske preduvjete prilikom dodavanja više korisnika.

  • Veća dostupnost    Sql Server omogućuje dinamičko sigurnosno kopiranje, inkrementalno ili dovršeno, bazu podataka dok se koristi. Zahvaljujući tome, korisnici ne moraju zatvoriti bazu podataka da bi stvorili njenu sigurnosnu kopiju.

  • Visoke performanse i skalabilnost    Baza podataka sustava SQL Server obično funkcionira bolje od baze podataka programa Access, osobito s velikom bazom podataka veličine terabajta. Osim toga, SQL Server upite obrađuje mnogo brže i učinkovito paralelno obradom upita pomoću više nativnih niti unutar jednog procesa za obradu korisničkih zahtjeva.

  • Poboljšana sigurnost    Pomoću pouzdane veze SQL Server integrira se sa sigurnošću sustava Windows radi pružanja jedinstvenog integriranog pristupa mreži i bazi podataka, koristeći najbolje od oba sigurnosna sustava. Time se znatno pojednostavnjuje administriranje složenih sigurnosnih shema. SQL Server idealan je prostor za pohranu povjerljivih podataka, kao što su brojevi socijalnog osiguranja, podaci o kreditnoj kartici i adrese koje su povjerljive.

  • Mogućnost trenutačnog oporavka     Ako se operacijski sustav ruši ili se napajanje isključi, SQL Server može automatski oporaviti bazu podataka u dosljedno stanje u roku od nekoliko minuta i bez intervencije administratora baze podataka.

  • Korištenje VPN-a    Pristup i virtualne privatne mreže (VPN) ne slagati. No uz SQL Server udaljeni korisnici i dalje mogu koristiti pristupnu bazu podataka programa Access na radnoj površini i stražnji dio sustava SQL Server koji se nalazi iza VPN vatrozida.

  • Azure SQL Server    Osim prednosti sustava SQL Server, nudi dinamičnu skalabilnost bez nevreme, inteligentnu optimizaciju, globalnu skalabilnost i dostupnost, uklanjanje hardverskih troškova i smanjenu administraciju.

Odaberite najbolju mogućnost sustava Azure SQL Server

Ako migrirate na Azure SQL Server, postoje tri mogućnosti koje možete odabrati, svaka od njih ima različite prednosti:

  • Jednostruka baza podataka / elastični bazeni    Ova mogućnost ima vlastiti skup resursa kojima se upravlja putem poslužitelja SQL baze podataka. Jedna baza podataka je kao sadržana baza podataka u sustavu SQL Server. Možete dodati i elastični skup, koji je zbirka baza podataka sa zajedničkim skupom resursa kojima se upravlja putem poslužitelja sql baze podataka. Najčešće korištene značajke sustava SQL Server dostupne su uz ugrađene sigurnosne kopije, zakrpe i oporavak. No ne postoji zajamčeno točno vrijeme održavanja i migracija sa sustava SQL Server može biti teška.

  • Upravljana instanca    Ta je mogućnost zbirka sistemskih i korisničkih baza podataka sa zajedničkim skupom resursa. Upravljana instanca je kao instanca baze podataka sustava SQL Server koja je vrlo kompatibilna s lokalnim sustavom SQL Server. Upravljana instanca sadrži ugrađene sigurnosne kopije, zakrpe, oporavak te je jednostavno migrirati sa sustava SQL Server. No postoji mali broj značajki sustava SQL Server koje nisu dostupne i bez zajamčenog točnog vremena održavanja.

  • Virtualno računalo za Azure    Ta vam mogućnost omogućuje pokretanje sustava SQL Server unutar virtualnog računala u oblaku platforme Azure. Imate potpunu kontrolu nad modulom sustava SQL Server i lakom migraciju. No morate upravljati sigurnosnim kopijama, zakrpama i oporavkom.

Dodatne informacije potražite u člancima Odabir puta za migraciju baze podataka na Azurei Što je Azure SQL?.

Prvi koraci

Nekoliko je problema koje možete riješiti unaprijed da biste pojednostavnili postupak migracije prije pokretanja SSMA-e:

  • Dodavanje indeksa tablice i primarnih ključeva    Provjerite ima li svaka tablica programa Access indeks i primarni ključ. SQL Server zahtijeva da sve tablice imaju barem jedan indeks i zahtijeva da povezana tablica ima primarni ključ ako je tablicu moguće ažurirati.

  • Provjera odnosa primarnog/vanjskog ključa    Provjerite temelje li se ti odnosi na poljima s dosljednim vrstama i veličinama podataka. SQL Server ne podržava spojene stupce s različitim vrstama podataka i veličinama u ograničenjima vanjskog ključa.

  • Uklanjanje stupca Privitak    SSMA ne migrira tablice koje sadrže stupac Privitak.

Prije pokretanja SSMA-e učinite sljedeće.

  1. Zatvorite bazu podataka programa Access.

  2. Provjerite jesu li trenutni korisnici povezani s bazom podataka i zatvorili bazu podataka.

  3. Ako je baza podataka u .mdb, uklonite sigurnost na razini korisnika.

  4. Sigurnosno kopirajte bazu podataka. Dodatne informacije potražite u članku Zaštita podataka pomoću postupka sigurnosnog kopiranja i vraćanja.

Savjet    Razmislite o instalaciji izdanja Microsoft SQL Server Express na radnu površinu koja podržava do 10 GB i besplatan je i jednostavniji način za pokretanje i provjeru migracije. Kada se povežete, kao instancu baze podataka koristite LocalDB.

Savjet    Ako je moguće, koristite samostalnu verziju programa Access.

Pokreni SSMA

Microsoft pruža Microsoft SQL Server Migration Assistant (SSMA) da bi olakšao migraciju. SSMA uglavnom migrira tablice i upite odabiranja bez parametara. Obrasci, izvješća, makronaredbe i VBA moduli ne pretvaraju se. Sql Server Metadata Explorer prikazuje objekte baze podataka programa Access i objekte sustava SQL Server koji omogućuju pregled trenutnog sadržaja obiju baza podataka. Te se dvije veze spremaju u datoteku za migraciju ako ubuduće odlučite prenijeti dodatne objekte.

Napomena    Postupak migracije može potrajati neko vrijeme ovisno o veličini objekata baze podataka i količini podataka koji se moraju prenijeti.

  1. Da biste migrirali bazu podataka pomoću SSMA-a, najprije preuzmite i instalirajte softver tako da dvokliknete preuzetu MSI datoteku. Provjerite jeste li instalirali odgovarajuću 32 ili 64-bitnu verziju za računalo.

  2. Kada instalirate SSMA, otvorite ga na radnoj površini, po mogućnosti s računala s datotekom baze podataka programa Access.

    Možete je otvoriti i na računalu koje ima pristup bazi podataka programa Access iz mreže u zajedničkoj mapi.

  3. Slijedite upute za početak u SSMA-u da biste natvorili osnovne informacije kao što su mjesto sustava SQL Server, baza podataka programa Access i objekti za migraciju, informacije o vezi i želite li stvoriti povezane tablice.

  4. Ako migrirate na SQL Server 2016 ili noviju verziju i želite ažurirati povezanu tablicu, dodajte stupac rowversion tako da odaberete Alati za pregled >Postavke projekta > Općenito.

    Polje rowversion pridonosi izbjegavanju sukoba zapisa. Access koristi ovo polje rowversion u povezanoj tablici sustava SQL Server da bi odredio kada je zapis zadnji put ažuriran. Osim toga, ako polje rowversion dodate u upit, Access ga koristi za ponovno odabir retka nakon operacije ažuriranja. Time se poboljšava učinkovitost tako što se izbjegavaju pogreške u sukobu pisanja i scenariji brisanja zapisa koji se mogu dogoditi kada Access otkrije različite rezultate od izvornog slanja, kao što bi se moglo dogoditi s vrstama podataka s pomičnim zarezom i aktivira izmjenu stupaca. No nemojte koristiti polje rowversion u obrascima, izvješćima ili VBA kodu. Dodatne informacije potražite u članku rowversion.

    Napomena    Izbjegavajte zbunjujuće rowversion s timestamps. Iako je vremenska oznaka ključne riječi sinonim za rowversion u sustavu SQL Server, rowversion ne možete koristiti kao način za vremensku oznaku unosa podataka.

  5. Da biste postavili precizne vrste podataka, odaberite Pregled alata > Postavke projekta >mapiranje vrsta. Ako, primjerice, pohranjujete samo tekst na engleskom jeziku, umjesto vrste podataka nvarchar možete koristiti varchar .

Pretvori objekte

SSMA objekte programa Access pretvara u objekte sustava SQL Server, ali ih ne kopira odmah. SSMA nudi popis sljedećih objekata za migraciju da biste mogli odlučiti želite li ih premjestiti u bazu podataka sustava SQL Server:

  • Tablice i stupci

  • Odaberite Upiti bez parametara.

  • Primarni i vanjski ključevi

  • Indeksi i zadane vrijednosti

  • Provjera ograničenja (dopusti svojstvo stupca nulte duljine, pravilo provjere valjanosti stupca, provjera valjanosti tablice)

Najbolje je koristiti izvješće o procjeni SSMA-e u kojem se prikazuju rezultati pretvorbe, uključujući pogreške, upozorenja, informativne poruke, procjene vremena za migraciju i pojedinačne korake ispravljanja pogrešaka koje je potrebno poduzeti prije premještanja objekata.

Pretvorbom objekata baze podataka dohvaćaju se definicije objekata iz metapodataka programa Access, pretvaraju se u ekvivalentnu sintaksu transact-SQL (T-SQL), a zatim te informacije učitavaju u projekt. Zatim možete prikazati objekte sustava SQL Server ili SQL Azure i njihova svojstva pomoću programa SQL Server ili sql Azure Metadata Explorer.

Da biste pretvorili, učitavali i migrirali objekte u SQL Server, slijedite ovaj vodič.

Savjet    Kada uspješno migrirate bazu podataka programa Access, spremite datoteku projekta za kasnije korištenje da biste mogli ponovno migrirati podatke radi testiranja ili konačne migracije.

Povezivanje tablica

Preporučujemo da instalirate najnoviju verziju OLE DB i ODBC upravljačkih programa za SQL Server umjesto da koristite nativne upravljačke programe sustava SQL Server koji se i otpreme u sustavu Windows. Ne samo da su noviji upravljački programi brži, već podržavaju nove značajke u sustavu Azure SQL koje prethodni upravljački programi ne podržavaju. Upravljačke programe možete instalirati na svako računalo na kojem se koristi pretvorena baza podataka. Dodatne informacije potražite u članku Microsoft OLE DB upravljački program 18 za SQL Server i Microsoft ODBC upravljački program 17 za SQL Server.

Kada migrirate tablice programa Access, možete se povezati s tablicama u sustavu SQL Server koje sada hostiraju podatke. Povezivanje izravno iz programa Access omogućuje i jednostavniji prikaz podataka umjesto korištenja složenih alata za upravljanje sustavom SQL Server.  Povezane podatke možete poslati upitima i uređivati, ovisno o dozvolama koje je postavio administrator baze podataka sustava SQL Server.

Napomena    Ako stvorite ODBC DSN prilikom povezivanja s bazom podataka sustava SQL Server tijekom postupka povezivanja, stvorite isti DSN na svim računalima koja koriste novu aplikaciju ili programski koriste niz za povezivanje pohranjen u DSN datoteci.

Dodatne informacije potražite u člancima Povezivanje ili uvoz podataka iz baze podataka sustava Azure SQL Server i Uvoz podataka u bazi podataka sustava SQL Server ili povezivanje s njima.

Savjet   Ne zaboravite koristiti upravitelj povezanih tablica u programu Access da biste jednostavno osvježili i ponovno povezali tablice. Dodatne informacije potražite u članku Upravljanje povezanim tablicama.

Testiranje i revizija

U sljedećim se odjeljcima opisuju uobičajeni problemi na koje možete naići tijekom migracije i kako se nositi s njima.

Upiti

Pretvaraju se samo upiti odabiranja; drugi upiti nisu, uključujući upite odabiranja koji koriste parametre. Neki upiti možda neće u potpunosti pretvoriti, a SSMA izvješćuje o pogreškama upita tijekom postupka pretvorbe. Objekte koji se ne pretvaraju možete ručno uređivati pomoću T-SQL sintakse. Pogreške sintakse mogu zahtijevati i ručno pretvaranje funkcija i vrsta podataka specifičnih za Access u one sustava SQL Server. Dodatne informacije potražite u članku Usporedba sql-a programa Access s TSQL-om sustava SQL Server.

Vrste podataka

Access i SQL Server imaju slične vrste podataka, ali imajte na umu sljedeće potencijalne probleme.

Veliki broj    Vrsta podataka Veliki brojevi pohranjuje brojčanu vrijednost koja nije novčana i kompatibilna je s vrstom podataka SQL bigint. Tu vrstu podataka možete koristiti za učinkovito izračunavanje velikih brojeva, ali za to je potreban oblik datoteke baze podataka Access 16 (16.0.7812 ili novija) .accdb i bolje funkcionira s 64-bitnom verzijom programa Access. Dodatne informacije potražite u člancima Korištenje vrste podataka Veliki brojevi i Odabir između 64-bitne ili 32-bitne verzije sustava Office.

Da/ne    Stupac Da/ne programa Access po zadanom se pretvara u polje bita sustava SQL Server. Da biste izbjegli zaključavanje zapisa, provjerite je li polje bit postavljeno tako da ne dopušta vrijednosti NULL. U SSMA-u možete odabrati stupac bita da biste svojstvo Allow Nulls postavili na NE. U TSQL-u koristite naredbe CREATE TABLEili ALTER TABLE .

Datum i vrijeme    Nekoliko je pitanja o datumu i vremenu:

  • Ako je razina kompatibilnosti baze podataka 130 (SQL Server 2016) ili novija, a povezana tablica sadrži jedan ili više stupaca datetime ili datetime2, tablica može prikazati poruku #deleted u rezultatima. Dodatne informacije potražite u članku Povezana tablica programa Access s SQL-Server vraća #deleted.

  • Pomoću vrste podataka Datum/vrijeme programa Access mapiranje na vrstu podataka datetime. Pomoću vrste podataka Datum/vrijeme proširenog pristupa mapiranje na vrstu podataka datetime2 koja ima veći raspon datuma i vremena. Dodatne informacije potražite u članku Korištenje vrste podataka Datum/vrijeme Prošireno.

  • Prilikom upita za datume u sustavu SQL Server uzmite u obzir vrijeme i datum. Na primjer:

    • DateOrdered Between 1/1/19 and 1/31/19 možda neće obuhvaćati sve narudžbe.

    • DateOrdered Between 1/1/19 00:00:00 And 31/19 19:59:59 PM ne uključuje sve narudžbe.

Privitak   Vrsta podataka Privitak pohranjuje datoteku u bazu podataka programa Access. U sustavu SQL Server možete uzeti u obzir nekoliko mogućnosti. Datoteke možete izdvojiti iz baze podataka programa Access, a zatim razmislite o pohrani veza na datoteke u bazi podataka sustava SQL Server. Možete i koristiti FILESTREAM, FileTables ili Udaljeno spremište BLOB-a (RBS) da biste zadržali privitke pohranjene u bazi podataka sustava SQL Server.

Hipervezu    Tablice programa Access sadrže stupce hiperveza koje SQL Server ne podržava. Po zadanom će se ti stupci pretvoriti u stupce nvarchar(max) u sustavu SQL Server, ali mapiranje možete prilagoditi tako da odaberete manju vrstu podataka. U rješenju programa Access i dalje možete koristiti ponašanje hiperveze u obrascima i izvješćima ako svojstvo Hyperlink za kontrolu postavite na true.

Polje s više vrijednosti    Polje s više vrijednosti programa Access pretvara se u SQL Server kao polje ntext koje sadrži razgraničeni skup vrijednosti. Budući da SQL Server ne podržava vrstu podataka s više vrijednosti koja predstavlja model odnosa više-prema-više, možda će biti potreban dodatni rad na dizajnu i pretvorbi.

Dodatne informacije o mapiranju vrsta podataka programa Access i sustava SQL Server potražite u članku Usporedba vrsta podataka.

Napomena    Polja s više vrijednosti se ne pretvaraju.

Dodatne informacije potražite u člancima Vrste datuma i vremena, Vrste nizova i binarnih datoteka te Numeričke vrste.

Visual Basic

Iako SQL Server ne podržava VBA, imajte na umu sljedeće moguće probleme:

VBA funkcije u upitima    Upiti programa Access podržavaju VBA funkcije na podacima u stupcu upita. No upite programa Access koji koriste VBA funkcije nije moguće pokrenuti u sustavu SQL Server, pa se svi zatraženi podaci prosljeđuju programu Microsoft Access radi obrade. U većini slučajeva te upite treba pretvoriti u prolazne upite.

Korisnički definirane funkcije u upitima    Upiti programa Microsoft Access podržavaju korištenje funkcija definiranih u VBA modulima za obradu podataka koji su im proslijeđeni. Upiti mogu biti samostalni upiti, SQL naredbe u izvorima zapisa obrasca/izvješća, izvori podataka kombiniranih okvira i okviri popisa na obrascima, izvješćima i poljima tablice te zadani izrazi ili izrazi pravila provjere valjanosti. SQL Server ne može pokrenuti te korisnički definirane funkcije. Možda ćete morati ručno redizajnirati te funkcije i pretvoriti ih u pohranjene procedure u sustavu SQL Server.

Optimiziranje performansi

Dosad je najvažniji način optimizacije performansi uz novi, stražnji SQL Server odlučiti kada koristiti lokalne ili udaljene upite. Kada migrirate podatke na SQL Server, prebacujete se i s datotečnog poslužitelja na model računalne baze podataka klijentskog poslužitelja. Slijedite ove opće smjernice:

  • Pokrenite male upite samo za čitanje na klijentu radi bržeg pristupa.

  • Pokrenite dugačke upite za čitanje/pisanje na poslužitelju da biste iskoristili veću snagu obrade.

  • Minimizirajte mrežni promet pomoću filtara i agregacije da biste prenijeli samo podatke koji su vam potrebni.

Optimiziranje performansi u modelu baze podataka klijentskog poslužitelja

Dodatne informacije potražite u članku Stvaranje prolaznog upita.

U nastavku su navedene dodatne preporučene smjernice.

Postavljanje logike na poslužitelj     Aplikacija može koristiti i prikaze, korisnički definirane funkcije, pohranjene procedure, izračunata polja i okidače za centralizaciju i zajedničko korištenje aplikacijske logike, poslovnih pravila i pravilnika, složenih upita, provjere valjanosti podataka i koda referencijalnog integriteta na poslužitelju, a ne na klijentu. Zapitajte se može li ovaj upit ili zadatak biti izvršen na poslužitelju bolje i brže? Na kraju testirajte svaki upit da biste osigurali optimalne performanse.

Korištenje prikaza u obrascima i izvješćima    U programu Access učinite sljedeće:

  • Za obrasce koristite SQL prikaz za obrazac samo za čitanje i SQL indeksirani prikaz za obrazac za čitanje/pisanje kao izvor zapisa.

  • Za izvješća koristite SQL prikaz kao izvor zapisa. No stvorite zaseban prikaz za svako izvješće da biste lakše ažurirali određeno izvješće, a da pritom ne utječete na druga izvješća.

Minimiziranje učitavanja podataka u obrascu ili izvješću    Nemojte prikazivati podatke dok ih korisnik ne zatraži. Svojstvo izvor zapisa, primjerice, ostavite prazno, neka korisnici oda odabiru filtar na obrascu, a zatim svojstvo izvora zapisa popunjavaju filtrom. Ili upotrijebite uvjet where za DoCmd.OpenForm i DoCmd.OpenReport da biste prikazali točne zapise potrebne korisniku. Preporučujemo da isključite navigaciju zapisima.

Budite oprezni s heterogenim upitima   Izbjegavajte pokretanje upita koji kombinira lokalnu tablicu programa Access i povezanu tablicu sustava SQL Server, koja se ponekad naziva hibridnim upitom. Ta vrsta upita i dalje zahtijeva da Access preuzme sve podatke sustava SQL Server na lokalno računalo, a zatim pokrene upit, ne pokreće upit u sustavu SQL Server.

Kada koristiti lokalne tablice    Razmislite o korištenju lokalnih tablica za podatke koji se rijetko mijenjaju, kao što su popis država ili pokrajina u državi ili regiji. Statične tablice često se koriste za filtriranje i mogu bolje funkcionirati na pristupni kraj programa Access.

Dodatne informacije potražite u članku Savjetnik za ugađanje modula baze podataka, Optimizacija baze podataka programa Access pomoću alata za analizu performansi i optimizacija aplikacija programa Microsoft Office Access povezane sa sustavom SQL Server.

Dodatne informacije

Vodič za migraciju baze podataka platforme Azure

Blog o Microsoftovoj migraciji podataka

Microsoft Access to SQL Server Migration, Conversion and Upsizing

Načini zajedničkog korištenja baze podataka programa Access za stolna računala

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.