Migracija baze podataka programa Access na SQL poslužitelj

Primjenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Svi imamo ograničenja i baza podataka programa Access nije iznimka. Veličina baze podataka, primjerice, programa Access ograničena je na 2 GB i ne podržava više od 255 istodobnih korisnika. Dakle, kada dođe vrijeme da baza podataka programa Access prijeđe na sljedeću razinu, možete migrirati na SQL Server. SQL Server (lokalno ili u oblaku Azure) podržava veće količine podataka, više istodobnih korisnika i ima veći kapacitet od modula JET/ACE baze podataka. Ovaj vam vodič omogućuje nesmetan početak vašeg putovanja do sustava SQL Server, pomaže u očuvanju pristupnih rješenja programa Access koja ste stvorili i, nadamo se, motivira vas da Access koristite za buduća rješenja za baze podataka. Upotrijebite pomoćnik za migraciju SQL Server (SSMA) da biste uspješno migrirali, slijedite ove faze.

Faze migracije baze podataka u SQL Server

Prije početka

U sljedećim su odjeljcima navedene pozadinske i druge informacije koje će vam pomoći da započnete s radom.

O podijeljenim bazama podataka

Svi objekti baze podataka programa Access mogu biti ili pohranjeni u jednoj datoteci baze podataka ili u dvije datoteke baze podataka: pristupnoj bazi podataka i pozadinskoj bazi podataka. To se naziva podjela baze podataka , a svrha je olakšati zajedničko korištenje u mrežnom okruženju. Pozadinska datoteka baze podataka mora sadržavati samo tablice i odnose. Pristupna datoteka smije sadržavati samo sve ostale objekte, uključujući obrasce, izvješća, upite, makronaredbe, VBA module i tablice povezane s pozadinskom bazom podataka. Migracija baze podataka programa Access slična je podijeljenoj bazi podataka jer SQL Server funkcionira kao nova pozadina za podatke koji se sada nalaze na poslužitelju.

Zbog toga i dalje možete održavati pristupnu bazu podataka programa Access s povezanim tablicama sustava SQL Server. Efektivno, možete izvući prednosti brzog razvoja aplikacija koje pruža baza podataka programa Access, zajedno sa skalabilnošću SQL Server.

Prednosti SQL Server

Još uvijek trebate malo uvjeravanja za migraciju na SQL Server? Evo nekih dodatnih prednosti o kojima vrijedi razmisliti:

  • Više istodobnih korisnika, SQL Server može upravljati mnogo više istodobnih korisnika od programa Access i minimizira zahtjeve za memorijom prilikom dodavanja većeg broja korisnika.
  • Povećana dostupnost SQL Server omogućuje dinamičko sigurnosno kopiranje, inkrementalno ili potpuno, bazu podataka dok je u upotrebi. 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 ima bolje performanse nego baza podataka programa Access, osobito ako je baza podataka velika u terabajtima. Također, SQL Server obrađuje upite mnogo brže i učinkovitije paralelnom obradom upita, koristeći više izvornih niti unutar jednog procesa za rukovanje zahtjevima korisnika.
  • Poboljšana sigurnost Pomoću pouzdane veze, SQL Server se integrira sa sigurnošću sustava Windows kako bi pružio jedinstven integrirani pristup mreži i bazi podataka, koristeći najbolje od oba sigurnosna sustava. Time se znatno olakšava administriranje složenih sigurnosnih shema. SQL Server idealno je spremište za osjetljive podatke, kao što su brojevi socijalnog osiguranja, podaci o kreditnim karticama i povjerljive adrese.
  • Trenutna mogućnost oporavka U slučaju pada operacijskog sustava ili nestanka struje, SQL Server može automatski oporaviti bazu podataka u dosljedno stanje u roku od nekoliko minuta bez potrebe za intervencijom administratora baze podataka.
  • Korištenje VPN-a Access i virtualne privatne mreže (VPN) se ne slažu. No uz SQL Server, udaljeni korisnici mogu i dalje koristiti pristupnu bazu podataka programa Access na stolnom računalu i pozadinu SQL Server koja se nalazi iza VPN vatrozida.
  • Azure SQL Server Osim prednosti SQL Server, nudi dinamičku skalabilnost bez zastoja, inteligentnu optimizaciju, globalnu skalabilnost i dostupnost, eliminaciju troškova hardvera i smanjenu administraciju.

Odabir najbolje mogućnosti Azure SQL Server

Ako migrirate na Azure SQL Server, možete odabrati tri mogućnosti, od kojih svaka ima druge prednosti:

  • Jedna baza podataka / elastični skupovi Ta mogućnost ima vlastiti skup resursa kojima se upravlja putem poslužitelja SQL baze podataka. Jedna baza podataka je poput sadržane baze podataka u sustavu SQL Server. Možete dodati i elastični skup, odnosno zbirku baza podataka sa zajedničkim skupom resursa kojima se upravlja putem poslužitelja za SQL baze podataka. Najčešće korištene značajke sustava SQL Server dostupne su s ugrađenim sigurnosnim kopiranjem, krpanjem i oporavkom. 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 baza podataka sustava i korisnika sa zajedničkim skupom resursa. Upravljana instanca nalik je instanci baze podataka sustava SQL Server koja je vrlo kompatibilna s lokalnim sustavom SQL Server. Upravljana instanca ima ugrađene sigurnosne kopije, zakrpe, oporavak i lako se migrira sa sustava SQL Server. No postoji mali broj značajki sustava SQL Server koje nisu dostupne i nema zajamčenog točnog vremena održavanja.
  • Virtualno računalo Azure Ta vam mogućnost omogućuje pokretanje sustava SQL Server unutar virtualnog računala u oblaku Azure. Imate potpunu kontrolu nad modulom sustava SQL Server i jednostavan put migracije. No morate upravljati sigurnosnim kopijama, zakrpama i oporavkom.

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

Prvi koraci

Nekoliko je problema na koje možete odmah odgovoriti da biste olakšali postupak migracije prije pokretanja SSMA-a:

  • Dodavanje indeksa tablica 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, a povezana tablica mora imati primarni ključ ako se tablica može ažurirati.
  • Provjera odnosa primarnog/vanjskog ključa Provjerite jesu li ti odnosi utemeljeni na poljima s dosljednim vrstama podataka i veličinama. 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-a poduzmite sljedeće prve korake.

  1. Zatvorite bazu podataka programa Access.
  2. Provjerite zatvaraju li i trenutni korisnici povezani s bazom podataka bazu podataka.
  3. Ako je baza podataka u .mdb obliku datoteke, uklonite sigurnost na razini korisnika.
  4. Sigurnosno kopirajte bazu podataka. Dodatne informacije potražite u članku Zaštita podataka pomoću postupaka sigurnosnog kopiranja i vraćanja.

Savjet Razmislite o instaliranju sustava Microsoft SQL Server Express Edition na stolna računala koji podržava do 10 GB i besplatan je i jednostavniji način za pregled i provjeru migracije. Kada se povezujete, koristite LocalDB kao instancu baze podataka.

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

Pokretanje SSMA

Microsoft nudi Microsoft SQL Server Migration Assistant (SSMA) radi jednostavnije migracije. SSMA uglavnom migrira tablice i odabire upite bez parametara. Obrasci, izvješća, makronaredbe i VBA moduli ne pretvaraju se. Eksplorer za metapodatke sustava SQL Server prikazuje objekte baze podataka programa Access i objekte sustava SQL Server, što omogućuje pregled trenutnog sadržaja obje baze podataka. Te dvije veze spremaju se u datoteku za migraciju ako u budućnosti odlučite prenijeti dodatne objekte.

Napomena Proces 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, najprije preuzmite i instalirajte softver dvoklikom na preuzetu MSI datoteku. Provjerite jeste li instalirali odgovarajuću 32-bitnu ili 64-bitnu verziju za računalo.
  2. Nakon instalacije SSMA-a otvorite ga na radnoj površini, po mogućnosti na računalu na kojem se nalazi datoteka baze podataka programa Access.
    Možete ga otvoriti i na računalu koje ima pristup bazi podataka programa Access s mreže u zajedničkoj mapi.
  3. Slijedite početne upute u SSMA-u da biste naveli osnovne informacije, kao što su mjesto sustava SQL Server, baza podataka programa Access i objekti koje želite migrirati, informacije o vezi te želite li stvoriti povezane tablice.
  4. Ako migrirate na SQL Server 2016 ili noviju i želite ažurirati povezanu tablicu, dodajte stupac verzije retka tako da odaberete Alati> za pregledOpćenito u postavkama> projekta.
    Polje rowversion omogućuje izbjegavanje sukoba zapisa. Access koristi ovo polje rowversion u povezanoj tablici sustava SQL Server da bi utvrdio kada je zapis zadnji put ažuriran. Također, ako polje rowversion dodate u upit, Access će ga koristiti za ponovni odabir retka nakon postupka ažuriranja. Time se povećava učinkovitost jer se izbjegavaju pogreške sukoba prilikom pisanja i scenariji brisanja zapisa koji se mogu pojaviti kada Access otkrije drugačije rezultate u odnosu na izvorni podnesak, primjerice kada Access otkrije drugačije rezultate nego u izvornom podnesku, primjerice kada Access otkrije vrstu podataka s pomičnim zarezom i okidače koji mijenjaju stupce. No nemojte koristiti polje rowversion u obrascima, izvješćima ni VBA kodu. Dodatne informacije potražite u članku rowversion.
    Napomena Izbjegavajte miješanje rowversion s vremenskim oznakama. Iako je ključna riječ timestamp 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 Alati> za pregledpostavki> projektaMapiranje vrste mapiranja. Ako, primjerice, pohranjujete samo tekst na engleskom, možete koristiti vrstu podataka varchar umjesto nvarchar .

Pretvaranje objekata

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

  • Tablice i stupci
  • Odabir upita bez parametara.
  • Primarni i vanjski ključevi
  • Indeksi i zadane vrijednosti
  • Ograničenja provjere (svojstvo stupca dopusti nultu duljinu, pravilo provjere valjanosti stupca, provjeru valjanosti tablice)

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

Pretvaranje objekata baze podataka dohvaća definicije objekata iz metapodataka programa Access, pretvara ih u ekvivalentnu Transact-SQL (T-SQL) sintaksu, a zatim te informacije učitava u projekt. Zatim možete pregledati objekte SQL Server ili SQL Azure i njihova svojstva pomoću sustava SQL Server ili SQL Azure Metadata Explorer.

Da biste pretvorili, učitali 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.

Razmislite o instalaciji najnovije verzije OLE DB i ODBC upravljačkih programa za SQL Server umjesto korištenja nativnih upravljačkih programa za SQL Server koji se isporučuju sa sustavom 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 posjeduju. Upravljačke programe možete instalirati na svako računalo na kojem se koristi pretvorena baza podataka. Dodatne informacije potražite u člancima Microsoft OLE DB upravljački program 18 za SQL Server i Microsoft ODBC upravljački program 17 za SQL Server.

Nakon migracije tablica programa Access možete se povezati s tablicama u sustavu SQL Server koji sada hostira vaše podatke. Izravno povezivanje iz programa Access omogućuje i jednostavniji prikaz podataka umjesto korištenja složenijih alata za upravljanje sustavom SQL Server. Upit možete postavljati i uređivati povezane podatke ovisno o dozvolama koje je postavio administrator baze podataka sustava SQL Server.

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

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

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

Testiranje i revizija

U sljedećim su odjeljcima opisani uobičajeni problemi na koje možete naići tijekom migracije te kako ih riješiti.

Upiti

Pretvaraju se samo upiti odabiranja; ostali upiti nisu, uključujući upite odabiranja koji prihvaćaju parametre. Neki se upiti možda neće u potpunosti pretvoriti, a SSMA prijavljuje pogreške upita tijekom postupka pretvorbe. Objekte koji se ne pretvaraju možete ručno urediti pomoću T-SQL sintakse. Pogreške sintakse mogu zahtijevati i ručno pretvaranje funkcija i tipova podataka specifičnih za Access u funkcije i vrste podataka SQL Server. Dodatne informacije potražite u članku Usporedba programa Access SQL sa servisom SQL Server TSQL.

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čane vrijednosti koje nisu novčane, a kompatibilna je s vrstom podataka SQL bigint. Tu vrstu podataka možete koristiti da biste učinkovito izračunavali velike brojeve, no za to je potrebno koristiti datotečni oblik baze podataka .accdb programa Access 16 (međuverzija 16.0.7812 ili novija), a bolje funkcionira u 64-bitnoj verziji programa Access. Dodatne informacije potražite u članku Korištenje vrste podataka Veliki brojevi i Odabir 64-bitne ili 32-bitne verzije sustava Office.

Da/ne Prema zadanim postavkama, stupac Da/ne programa Access pretvara se 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 možete odabrati stupac bitova da biste svojstvo Dopusti nulls postavili na NE. U TSQL-u koristite naredbe CREATE TABLE ili ALTER TABLE .

Datum i vrijeme Nekoliko stvari na koje treba obratiti pozornost datuma i vremena:

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

  • Vrstu podataka Datum/vrijeme programa Access koristite za mapiranje u vrstu podataka Datum i vrijeme. Pomoću proširene vrste podataka Datum/vrijeme programa Access mapirajte u 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 ispitivanja datuma u sustavu SQL Server uzmite u obzir vrijeme i datum. Na primjer:

    • DatumNaručeno: Između 1. 1. 2019. i 31. 1. 2019. možda neće obuhvaćati sve narudžbe.
    • DateOrdered Između 1. 1. 2019. 00:00:00 i 31. 1. 2019. 23:59:59 uključuje sve narudžbe.

Privitak Vrsta podataka Privitak pohranjuje datoteku u bazu podataka programa Access. U sustavu SQL Server morate razmotriti nekoliko mogućnosti. Izdvojite datoteke iz baze podataka programa Access, a zatim razmislite o spremanju veza na datoteke u bazu podataka sustava SQL Server. Osim toga, možete koristiti i bajtovni zapis datoteka, datotečne tablice ili udaljeno spremište blobova (RBS) da biste privitke čuvali u bazi podataka sustava SQL Server.

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

polje s više vrijednosti Polje s više vrijednosti programa Access pretvara se u sustav 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 SQL Server potražite u odjeljku Usporedba vrsta podataka.

Napomena Polja s više vrijednosti ne pretvaraju se.

Dodatne informacije potražite u člancima Vrste datuma i vremena, Nizovne i binarne vrste 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 upiti programa Access koji koriste VBA funkcije ne mogu se pokrenuti u sustavu SQL Server, pa se svi zatraženi podaci prosljeđuju programu Microsoft Access na obradu. U većini slučajeva te je upite potrebno 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 u kombiniranim okvirima i okvirima s popisima u 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 spremljene procedure na SQL Server.

Optimiziranje performansi

Daleko najvažniji način optimizacije performansi s vašim novim, pozadinskim sustavom SQL Server je odluka kada koristiti lokalne ili udaljene upite. Kada migrirate podatke u SQL Server, prelazite i s datotečnog poslužitelja na računalni model klijent-poslužitelj baze podataka. Slijedite ove općenite smjernice:

  • Pokrenite male upite samo za čitanje na klijentu radi najbržeg pristupa.
  • Na poslužitelju pokrećite dugačke upite za čitanje/pisanje da biste iskoristili prednosti veće snage obrade.
  • Smanjite mrežni promet pomoću filtara i agregacije da biste prenijeli samo one 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 slijede dodatne, preporučene smjernice.

Postavljanje logike na poslužitelj Aplikacija može koristiti i prikaze, korisnički definirane funkcije, spremljene 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 referencijalnog koda integriteta na poslužitelju, a ne na klijentu. Zapitajte se može li se ovaj upit ili zadatak bolje i brže izvesti na poslužitelju? 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 kao izvor zapisa koristite SQL prikaz za obrazac samo za čitanje i SQL indeksirani prikaz za obrazac za čitanje/pisanje.
  • Za izvješća kao izvor zapisa koristite SQL prikaz. No za svako izvješće stvorite zaseban prikaz da biste mogli jednostavnije ažurirati određeno izvješće bez utjecaja na druga izvješća.

Minimiziranje učitavanja podataka u obrascu ili izvješću Ne prikazujte podatke dok ih korisnik ne zatraži. Možete, primjerice, svojstvo recordsource ostaviti prazno, korisnike natjerati da odaberu filtar na obrascu, a zatim svojstvo recordsource popuniti svojim filtrom. Možete i upotrijebiti uvjet where DoCmd.OpenForm i DoCmd.OpenReport da biste prikazali točne zapise koji su potrebni korisniku. Razmislite o isključivanju navigacije zapisima.

Budite oprezni prilikom heterogenih upita Izbjegavajte pokretanje upita koji kombinira lokalnu tablicu programa Access i povezanu tablicu sustava SQL Server, što se ponekad naziva hibridnim upitom. Ta vrsta upita i dalje zahtijeva da Access preuzme sve podatke sustava SQL Server na lokalno računalo i zatim pokrene upit, ali 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 je popis saveznih država ili pokrajina u državi ili regiji. Statične tablice često se koriste za filtriranje i imaju bolje performanse na pristupnom sučelju programa Access.

Dodatne informacije potražite u članku Database Engine Tuning Advisor, Korištenje alata za analizu performansi za optimizaciju baze podataka programa Access i optimiziranje aplikacija programa Microsoft Office Access povezanih sa sustavom SQL Server.

Dodatne informacije

Vodič za migraciju baze podataka platforme Azure

Blog o Microsoftovoj migraciji podataka

Microsoft Access to SQL Server migracija, pretvorba i nadogradnja

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