Migracija baze podataka programa Access na SQL Server

Migracija baze podataka programa Access na SQL Server

Svi imamo ograničenja, a baza podataka programa Access nije iznimka. Na primjer, baza podataka programa Access 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 krene na sljedeću razinu, možete migrirati na SQL Server. SQL Server (bilo lokalno ili u oblaku Azure) podržava veće količine podataka, više istodobnih korisnika te ima veći kapacitet od modula baze podataka JET/ACE. Ovaj vodič omogućuje vam nesmetan početak rada na sustavu SQL Server, što omogućuje očuvanje pristupnih rješenja koje ste stvorili, a nadamo se da će vas motiiti da koristite Access za buduća rješenja baze podataka. Čarobnjak za prijelaz na SQL Server uklonjen je iz programa Access u programu Access 2013, pa sada možete koristiti pomoćnik za migraciju Microsoft SQL Servera (SSMA). Da biste se uspješno migrirali, slijedite ove faze.

Faze migracije baze podataka na SQL Server

Prije početka

U sljedećim odjeljcima nalaze se pozadine i druge informacije koje će vam pomoći da započnete s radom.

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: ulazna baza podataka i pozadinsku bazu podataka. To se naziva podjela baze podataka i dizajnirana je tako da olakšava zajedničko korištenje u mrežnom okruženju. Pozadinsku datoteku baze podataka mora sadržavati samo tablice i odnose. Ulazna datoteka mora sadržavati samo sve ostale objekte, uključujući obrasce, izvješća, upite, makronaredbe, VBA module i povezane tablice s pozadinskoj bazi podataka. Kada migrirate bazu podataka programa Access, slična je podijeljenom bazom podataka u kojoj se SQL Server ponaša kao novi pozadinski podatak za podatke koji se sada nalaze na poslužitelju.

Kao rezultat toga, možete i dalje održavati bazu podataka programa Access s povezanim tablicama s tablicama sustava SQL Server. Učinkovito možete izvući prednosti brzog razvoja aplikacija koje nudi baza podataka programa Access, kao i skalabilnost sustava SQL Server.

Prednosti sustava SQL Server

Još uvijek trebate neki uvjerljiv migrirati na SQL Server? Evo nekoliko dodatnih pogodnosti za razmišljanje:

  • Više istodobnih korisnika    SQL Server može podnijeti mnogo više istodobnih korisnika nego Access i minimizira preduvjete memorije kada se doda još korisnika.

  • Povećana dostupnost    Pomoću sustava SQL Server možete dinamički sigurnosno kopirati, ili inkrementalni ili Complete, bazu podataka dok je u upotrebi. Zahvaljujući tome, korisnici ne moraju zatvoriti bazu podataka da bi stvorili njenu sigurnosnu kopiju.

  • Visokoperformanse i skalabilnost    Baza podataka sustava SQL Server obično izvodi bolje od baze podataka programa Access, posebno s velikom bazom podataka veličine terabajta. Također, SQL Server obrađuje upite znatno brže i efikasno obradom upita paralelno, pomoću više izvornih tema u jednom postupku radi rukovanja zahtjevima korisnika.

  • Poboljšana sigurnost    Pomoću pouzdane veze SQL Server integrira se u sigurnost sustava Windows da bi osigurao jedan integrirani pristup mreži i bazi podataka, zapošljavanju najbolje od oba sigurnosnog sustava. Time se olakšava upravljanje kompleksnim sigurnosnim programima. SQL Server idealan je prostor za pohranu osjetljivih podataka, kao što su brojevi socijalnog osiguranja, podaci o kreditnoj kartici i adrese koje su povjerljive.

  • Neposredna kompenzabilnost    Ako se operacijski sustav sruši ili se struja ugasi, SQL Server može automatski oporaviti bazu podataka u dosljedno stanje u nekoliko minuta i bez intervencije administratora baze podataka.

  • Korištenje VPN-a    Access i virtualne privatne mreže (VPN-a) ne slažu se. No uz SQL Server udaljeni korisnici mogu koristiti bazu podataka programa Access na stolnom računalu i pozadinskom sustavu SQL Server koji se nalazi iza vatrozida za VPN.

  • Azure SQL Server    Osim prednosti sustava SQL Server, nudi i dinamičnu skalabilnost bez zastoja, inteligentnih optimizacija, globalne skalabilnosti i dostupnosti, eliminacije hardverskih troškova i smanjene administracije.

Odaberite mogućnost najbolje Azure SQL Server

Ako migrirate u Azure SQL Server, postoje tri mogućnosti koje možete odabrati, svaka s raznim prednostima:

  • Jedinstvena baza podataka/elastični bazeni    Ta mogućnost ima vlastiti skup resursa koji se upravlja putem SQL poslužitelja baze podataka. Jedna baza podataka kao sadržana je baza podataka u sustavu SQL Server. Možete dodati i elastični bazen, što je zbirka baza podataka s 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, krpanje i oporavak. No, nema zajamčeno točno vrijeme održavanja i migracija s sustava SQL Server može biti teško.

  • Upravljana instanca    Ta je mogućnost zbirka sistemskih i korisničkih baza podataka s zajedničkim skupom resursa. Upravljana je instanca primjerice baze podataka sustava SQL Server koja je vrlo kompatibilna sa sustavom SQL Server. Upravljana instanca sadrži ugrađene sigurnosne kopije, krpanje, oporavak i jednostavno migrira iz sustava SQL Server. Međutim, postoji manji broj značajki sustava SQL Server koje nisu dostupne i nema zajamčeno točno vrijeme održavanja.

  • Virtualno računalo za Azure    Ta vam mogućnost omogućuje pokretanje sustava SQL Server u virtualnom stroju u oblaku Azure. Imate potpunu kontrolu nad motorom sustava SQL Server i jednostavnom migracijskom stazom. No morate upravljati sigurnosnim kopijama, zakrpe i oporavkom.

Dodatne informacije potražite u članku Odabir puta migracije baze podataka na Azure i Odabir odgovarajuće mogućnosti sustava SQL Server u servisu Azure.

Prvi koraci

Postoji nekoliko problema kojima se možete obratiti unaprijed, a da biste mogli pojednostavniti postupak migracije prije nego što pokrenete SSMA:

  • Dodavanje indeksa tablice i primarnih ključeva    Provjerite sadrži li svaka tablica programa Access indeks i primarni ključ. SQL poslužitelj zahtijeva da sve tablice imaju barem jedan indeks, a potrebna je povezana tablica da ima primarni ključ ako se tablica može ažurirati.

  • Provjera odnosa primarnog i vanjskog ključa    Pobrinite se da se ti odnosi temelje na poljima s dosljednom vrstom 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 privitka    SSMA ne migrira tablice koje sadrže stupac privitaka.

Prije nego što pokrenete SSMA, poduzmite sljedeće prve korake.

  1. Zatvaranje baze podataka programa Access.

  2. Provjerite jesu li i sadašnji korisnici povezani s bazom podataka zatvorili bazu podataka.

  3. Ako je baza podataka u datotečnom obliku. mdb, zatim Uklonite sigurnost na razini korisnika.

  4. Sigurnosno kopiranje baze podataka. Dodatne informacije potražite u članku Zaštita podataka pomoću procesa sigurnosnog kopiranja i vraćanja.

Savjet    Razmislite o instalaciji sustava Microsoft SQL Server Express Edition na radnu površinu koja podržava do 10 GB te je besplatan i lakši način izvođenja i provjera migracije. Kada se povežete, koristite Localdb kao instancu baze podataka.

Savjet    Ako je moguće, upotrijebite samostalnu verziju programa Access. Ako možete koristiti samo Office 365, koristite modul baze podataka programa Access 2010 da biste migrirali bazu podataka programa Access prilikom korištenja značajke SSMA. Dodatne informacije potražite u odjeljku modul baze podataka programa Microsoft Access 2010 Redistributable.

Pokreni SSMA

Microsoft prikazuje Pomoćnik za migraciju sustava Microsoft SQL Server (ssma) radi jednostavnijeg migracije. SSMA uglavnom migrira tablice i odabire upite bez parametara. Obrasci, izvješća, makronaredbe i VBA moduli nisu pretvoreni. Eksplorer za metapodatke sustava SQL Server prikazuje objekte baze podataka programa Access i objekte sustava SQL Server koji omogućuju pregled postojećeg 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 koje je potrebno prenijeti.

  1. Da biste bazu podataka migrirali pomoću značajke SSMA, najprije Preuzmite i instalirajte softver dvostrukim klikom na PREUZETU msi datoteku. Provjerite jeste li instalirali odgovarajuću verziju sustava 32 ili 64 za računalo.

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

    Možete ga otvoriti i na stroju koji ima pristup bazi podataka programa Access iz mreže u zajedničkoj mapi.

  3. Slijedite upute u programu SSMA da biste omogućili osnovne informacije kao što su mjesto sustava SQL Server, baza podataka programa Access i objekti za migriranje, informacije o povezivanju i želite li stvarati povezane tablice.

  4. Ako migrirate u SQL Server 2016 ili noviji, a želite ažurirati povezanu tablicu, dodajte stupac ROWVERSION odabirom alata za pregled > Postavke projekta > Općenito.

    Polje ROWVERSION sprječava sukobe zapisa. Access koristi ovo polje ROWVERSION u povezanoj tablici sustava SQL Server da bi ustanovio kada je zapis zadnji put ažuriran. Ako i polje ROWVERSION dodate u upit, Access ga koristi za ponovno odabir retka nakon operacije ažuriranja. Time se poboljšava učinkovitost pomažući u izbjegavanju pogrešaka u sukobu s pisanjem i scenarijima za brisanje zapisa koji se mogu dogoditi kada Access otkrije različite rezultate iz izvornog slanja, kao što se može pojaviti s vrstama podataka s pokretnim točkama i okidačima koji se izmijenjuju stupaca. No, Izbjegavajte korištenje polja ROWVERSION u obrascima, izvješćima ili VBA kodu. Dodatne informacije potražite u odjeljku ROWVERSION.

    Napomena    Izbjegavajte zbunjujuću rowverziju s vremenskim oznakama. Iako je vremenska oznaka za ključne riječi sinonim za ROWVERSION u sustavu SQL Server, ne možete koristiti ROWVERSION kao način vremenske oznake za unos podataka.

  5. Da biste postavili precizne vrste podataka, odaberite Alati za pregled > Postavke projekta > mapiranje vrste. Ako, primjerice, pohranjujete samo engleski tekst, možete koristiti VARCHAR , a ne nvarchar vrstu podataka.

Pretvaranje objekata

SSMA pretvara objekte programa Access u objekte sustava SQL Server, ali ne kopira objekte odmah. SSMA sadrži popis sljedećih objekata koji će se migrirati da biste mogli odlučiti želite li ih premjestiti u bazu podataka sustava SQL Server:

  • Tablice i stupci

  • Odaberite upite bez parametara.

  • Primarni i vanjski ključevi

  • Indeksi i zadane vrijednosti

  • Provjera ograničenja (dopuštanje svojstva stupca nulte duljine, pravilo provjere valjanosti stupaca, provjera valjanosti tablice)

Kao najbolja praksa koristite izvješće o ocjenjivanju SSMA, koji prikazuje rezultate konverzije, uključujući pogreške, upozorenja, informativne poruke, vremenske procjene za obavljanje migracije te pojedinačne korake za ispravak pogrešaka koje treba poduzeti prije nego što zapravo premjestite objekata.

Pretvaranje objekata baze podataka uzima definicije objekata iz metapodataka programa Access, pretvara ih u jednaku sintaksu Transact-SQL (T-SQL), a zatim učitava te podatke u projekt. Zatim možete pregledavati objekte sustava SQL Server ili SQL Azure i njihova svojstva pomoću programa SQL Server ili SQL Azure Eksplorer za metapodatke.

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 kasniju upotrebu da biste ponovno mogli migrirati podatke radi testiranja ili konačne migracije.

Poveži tablice

Razmislite o instalaciji najnovije verzije sustava SQL Server OLE DB i ODBC upravljačkih programa umjesto korištenja izvornih upravljačkih programa sustava SQL Server koji se otpreme sa sustavom Windows. Ne samo da su noviji upravljački programi brži, već podupiru i nove značajke u sustavu Azure SQL koje prethodni upravljački programi ne sadrže. 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 Driver 18 za SQL Server i Microsoftov upravljački program za ODBC 17 za SQL Server.

Kada migrirate tablice programa Access, možete se spojiti na tablice u sustavu SQL Server koja sada hostira podatke. Povezivanje izravno iz programa Access omogućuje jednostavniji način pregledavanja podataka, a ne pomoću složenijih alata za upravljanje sustavom SQL Server.  Možete postavljati upite i uređivati povezane podatke, ovisno o dozvolama koje je postavio administrator baze podataka sustava SQL Server.

Napomena    Ako prilikom povezivanja s bazom podataka sustava SQL Server stvorite ODBC d-dan, stvorite isti dimator na svim strojevima koji koriste novu aplikaciju ili programsko koristite niz za povezivanje pohranjen u datoteci d-verzije.

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

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

Testiranje i revidiranje

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

Upiti

Pretvaraju se samo upiti odabranih upita; ostali upiti nisu, uključujući odabir upita koji uzimaju parametre. Neki se upiti možda neće u potpunosti pretvoriti, a SSMA izvještava o pogreškama upita tijekom postupka pretvorbe. Objekte koji se ne pretvaraju možete ručno uređivati pomoću sintakse T-SQL. Pogreške sintakse mogu zahtijevati i ručno pretvaranje funkcija specifičnih za pristup i vrsta podataka na SQL Server one. Dodatne informacije potražite u članku Usporedba programa Access SQL sa sustavom 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 broj pohranjuje nemonetarnu, numeričku vrijednost i kompatibilna je s vrstom podataka SQL bigint. Ovu vrstu podataka možete koristiti za učinkovito izračunavanje velikih brojeva, ali to zahtijeva korištenje programa Access 16 (16.0.7812 ili noviji). accdb format datoteke baze podataka i bolje izvodi uz 64-bitnu verziju programa Access. Dodatne informacije potražite u članku korištenje vrste podataka veliki broj i Odabir između 64-bitne ili 32-bitne verzije sustava Office.

Da/ne    Prema zadanim postavkama, stupac programa Access da/ne pretvara se u polje sustava SQL Server. Da biste izbjegli zaključavanje zapisa, Provjerite je li polje bit postavljeno na onemogućivanje NULL vrijednosti. U programu SSMA možete odabrati stupac bit da biste postavili svojstvo Dopusti Nullse na ne. U TSQL-u koristite izvatke stvaranja tablice ili izmjene tablice .

Datum i vrijeme    Postoji nekoliko razmatranja datuma i vremena:

  • Ako je razina kompatibilnosti baze podataka 130 (SQL Server 2016) ili noviji, a povezana tablica sadrži jedan ili više stupaca datetime ili datetime2, tablica može vratiti poruku #deleted u rezultatima. Dodatne informacije potražite u članku pristup povezanim tablicama s bazom podataka sustava SQL-Server vraća #deleted.

  • Koristite vrstu podataka datetime2 koja ima veći raspon datuma nego datetime.

  • Prilikom upita za datume u sustavu SQL Server, uzmite u obzir vrijeme, kao i Datum. Primjerice:

    • Datumov red između 1/1/19 i 1/31/19 možda neće uključivati sve narudžbe.

    • Datumov red između 1/1/19 00:00:00 i 1/31/19 11:59:59 sadrži sve narudžbe.

Privitak   Vrsta podataka privitka sprema datoteku u bazu podataka programa Access. U sustavu SQL Server možete razmotriti nekoliko mogućnosti. Datoteke možete izdvojiti iz baze podataka programa Access, a zatim razmotriti spremanje veza na datoteke u bazi podataka sustava SQL Server. Osim toga, možete koristiti FILESTREAM, FileTables ili udaljene trgovine BLOLIMA (RBS) da biste zadržali privitke pohranjene u bazi podataka sustava SQL Server.

Hiperveza    Tablice programa Access imaju stupce hiperveze koje SQL Server ne podržava. Te će se stupce po zadanom pretvoriti u stupce nvarchar (Max) u sustavu SQL Server, ali mapiranje možete prilagoditi da biste odabrali manju vrstu podataka. U rješenju programa Access i dalje možete koristiti ponašanje hiperveza u obrascima i izvješćima ako svojstvo hiperveza postavite za kontrolu 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čen 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 preslikaču vrsta podataka programa Access i SQL Server potražite u članku Usporedba vrsta podataka.

Napomena    Polja s više vrijednosti ne pretvaraju se i prekinute su u programu Access 2010.

Dodatne informacije potražite u članku vrste datuma i vremena, niza i binarne vrstete numeričke vrste.

Visual Basic

Ako SQL Server ne podržava VBA, pogledajte 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 na sustavu SQL Server, pa se svi zatraženi podaci prenose na Microsoft Access radi obrade. U većini slučajeva ti se upiti moraju pretvoriti u upite koji prolaze kroznjih.

Korisnički definirane funkcije u upitima    Upiti programa Microsoft Access podržavaju korištenje funkcija definiranih u VBA modulima radi obrade podataka koji se prenose na njih. Upiti mogu biti samostalni upiti, SQL naredbe u izvorima zapisa obrasca/izvješća, izvori podataka u kombiniranim okvirima i okvirima popisa u poljima obrasci, izvješća i tablice te zadani izrazi pravila provjere valjanosti. SQL poslužitelj ne može pokrenuti te korisničke definirane funkcije. Možda ćete morati ručno ponovno dizajnirati ove funkcije i pretvoriti ih u spremljene procedure na sustavu SQL Server.

Optimiziranje performansi

Najvažniji način optimiziranja performansi pomoću novog, pozadinskog SQL poslužitelja jest odluka o korištenju lokalnih ili udaljenih upita. Kada podatke migrirate u SQL Server, premještate se i s poslužitelja datoteka na klijentsko-Serverov model baze podataka računalstva. Slijedite ove općenite smjernice:

  • Pokrenite male, upite samo za čitanje na klijentu radi najbržih pristupa.

  • Trčanje dugo, čitanje/zapisivanje upita na poslužitelju da biste iskoristili veću obradu Power.

  • Minimizirajte mrežni promet pomoću filtara i agregacije da biste prenijeli samo potrebne podatke.

Optimiziranje performansi u modelu baze podataka klijentskog poslužitelja

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

Slijede dodatne, preporučene smjernice.

Postavljanje logike na poslužitelj    Vaša 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 logike aplikacija, poslovnih pravila i pravilnika, kompleksnih upita, provjere valjanosti podataka i koda referencijalnog integriteta na kartici poslužitelj, a ne na klijentu. Zapitajte se, može li se ovaj upit ili zadatak obaviti na poslužitelju bolje i brže? Konačno, 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/zapisivanje kao izvor zapisa.

  • Za izvješća koristite SQL prikaz kao izvor zapisa. Međutim, stvorite zaseban prikaz za svako izvješće da biste jednostavnije ažurirali određeno izvješće, a da ne biste mogli utjecati na druga izvješća.

Minimiziranje učitavanja podataka u obrascu ili izvješću    Ne prikazujte podatke dok ga korisnik ne zatraži. Ako, primjerice, svojstvo RecordSource zadržite praznim, odaberite filtar na obrascu, a zatim ispunite svojstvo RecordSource pomoću filtra. Ili koristite uvjet WHERE za DoCmd. OpenForm i DoCmd. OpenReport da bi vam se prikazale točni zapis koji je potreban korisniku. Razmislite o isključivanju navigacije zapisa.

Budite pažljivi s heterognim upitima   Izbjegavajte pokretanje upita koji kombinira lokalnu tablicu programa Access i povezanu tablicu sustava SQL Server, ponekad se naziva hibridnim upitom. Ova vrsta upita i dalje zahtijeva pristup za preuzimanje svih podataka sustava SQL Server na lokalni stroj, a zatim pokretanje upita, 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 država ili provincija u državi ili regiji. Statične tablice često se koriste za filtriranje, a mogu se bolje obavljati na ulaznim vratima programa Access.

Dodatne informacije potražite u odjeljku savjetnik za ugađanje modula za baze podatakapomoću alata za analizu performansi optimiziranje baze podataka programa Accessi optimiziranje aplikacija sustava Microsoft Office Access povezanih sa sustavom SQL Server.

Pogledajte i sljedeće

Vodič za migraciju Azure baze podataka

Blog za migraciju podataka u programu Microsoft

Microsoft Access za migraciju na SQL Server, pretvaranje i prijelaz na

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

Napomena:  Ova je stranica strojno prevedena te može sadržavati gramatičke pogreške ili netočnosti. Naša je namjera da vam ovaj sadržaj bude koristan. Jesu li vam te informacije bile korisne? Kao referencu možete pogledati i članak na engleskom jeziku.​

Proširite svoje vještine korištenja sustava Office
Istražite osposobljavanje

Jesu li vam ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×