Svi imamo ograničenja, a Access baza podataka nije izuzetak. Na primer, Access baza podataka ima ograničenje veličine od 2 GB i ne može da podrži više od 255 istovremenih korisnika. Dakle, kada dođe vreme da Access baza podataka ode na sledeći nivo, možete da migrirate na SQL Server. SQL Server (lokalno ili u Azure oblaku) podržava veće količine podataka, više istovremenih korisnika i ima veći kapacitet od JET/ACE mašine baze podataka. Ovaj vodič pruža brz početak putovanja kroz SQL Server, pomaže vam da očuvate Access izložena rešenja koja ste kreirali i nadajmo se da ćete koristiti Access za buduća rešenja za baze podataka. Koristite Microsoft SQL Server Migration Assistant (SSMA) da biste uspešno migrirali, pratite ove faze.
Pre nego što počnete
Sledeći odeljci pružaju pozadinu i druge informacije koje će vam pomoći da počnete sa radom.
Osnovni podaci o razdeljenim bazama podataka
Svi objekti Access baze podataka mogu biti u jednoj datoteci baze podataka ili mogu biti uskladišteni u dve datoteke baze podataka: u izloženoj bazi podataka i potpornu bazu podataka. To se naziva razdeljivanje baze podataka i dizajnirana je da pomogne deljenje u mrežnom okruženju. Datoteka pozadinske baze podataka mora da sadrži samo tabele i relacije. Izložena datoteka mora da sadrži samo sve ostale objekte, uključujući obrasce, izveštaje, upite, makroe, VBA module i povezane tabele sa potpornom bazom podataka. Kada migrirate Access bazu podataka, to je slično razdeljenim bazama podataka u tome što se SQL Server ponaša kao novi potporni sistem za podatke koji se sada nalaze na serveru.
Kao rezultat toga, i dalje možete da održavate izloženu Access bazu podataka sa povezanim tabelama u SQL Server tabelama. Efikasno, možete da izvedene prednosti brzog razvoja aplikacija koje Access baza podataka pruža, kao i upotrebljivost sistema SQL Server.
Pogodnosti SQL servera
I dalje vam je potrebno ubeđivanje da biste migrirali u SQL Server? Evo nekih dodatnih prednosti o kojih možete da razmišljate:
-
Više istovremenih korisnika SQL Server može da rukuje mnogo više istovremenih korisnika od programa Access i umanjuje zahteve memorije kada se doda više korisnika.
-
Povećana dostupnost Pomoću sistema SQL Server možete da dinamički napravite rezervnu kopiju baze podataka, postepeno ili dovršeno, dok je u upotrebi. Zbog toga ne morate da zahtevate od korisnika da izađu iz baze podataka da biste napravili rezervnu kopiju podataka.
-
Visoke performanse i skalabilnost SQL Server baza podataka obično radi bolje od Access baze podataka, posebno sa velikom bazom podataka veličine terabajta. Pored toga, SQL Server obrađuje upite mnogo brže i efikasnije tako što paralelno obrađuje upite pomoću više izvornih niti u okviru jednog procesa za rukovanje korisničkim zahtevima.
-
Poboljšana bezbednost Pomoću pouzdane veze, SQL Server se integriše sa Windows sistemom kako bi obezbedio jedan integrisan pristup mreži i bazi podataka i koristi oba bezbednosna sistema na najbolji način. To mnogo olakšava upravljanje složenim bezbednosnim šemama. SQL Server je idealno skladište za osetljive informacije kao što su brojevi socijalnog osiguranja, podaci kreditnih kartica i adrese koje su poverljive.
-
Mogućnost trenutnog oporavka Ako operativni sistem padne ili ne radi, SQL Server može automatski da oporavi bazu podataka u usaglašeno stanje za nekoliko minuta i bez intervencije administratora baze podataka.
-
Upotreba VPN-a Access i Virtuelne privatne mreže (VPN) se ne sklapaju. Ali sa sistemom SQL Server, udaljeni korisnici i dalje mogu da koriste Access izloženu bazu podataka na radnoj površini i pozadinski SQL Server koji se nalazi iza VPN zaštitnog zida.
-
Azure SQL Server Pored pogodnosti sistema SQL Server, nudi dinamičku upotrebljivost bez prekid rada, inteligentnu optimizaciju, globalnu upotrebljivost i dostupnost, eliminisanje troškova hardvera i smanjenu administraciju.
Odaberite najbolju opciju za Azure SQL Server
Ako migrirate u Azure SQL Server, postoje tri opcije koje možete odabrati, od kojih svaka ima različite pogodnosti:
-
Jednostruke baze podataka/elastični bazeni Ova opcija ima sopstveni skup resursa kojima se upravlja putem servera SQL baze podataka. Jedna baza podataka je kao baza podataka koja se nalazi u sistemu SQL Server. Možete da dodate i elastičnu grupu, koja predstavlja kolekciju baza podataka sa deljenim skupom resursa kojima se upravlja putem servera SQL baze podataka. Najčešće korišćene SQL Server funkcije dostupne su sa ugrađenim rezervnim kopijama, zakrpama i oporavkom. Ali nema zagarantovanog tačnog vremena održavanja i migracije sa SQL servera.
-
Kontrolisana instanca Ova opcija je kolekcija sistemskih i korisničkih baza podataka sa deljenim skupom resursa. Kontrolisana instanca je kao instanca SQL Server baze podataka koja je veoma kompatibilna sa lokalnim sistemom SQL Server. Kontrolisana instanca ima ugrađene rezervne kopije, zakrpa, oporavak i lako se migrira sa SQL servera. Međutim, postoji mali broj funkcija sistema SQL Server koje nisu dostupne i ne garantuje tačno vreme održavanja.
-
Azure virtuelna mašina Ova opcija vam omogućava da pokrenete SQL Server unutar virtuelne mašine u Azure oblaku. Imate potpunu kontrolu nad SQL Server mašinom i lakom putanjom migracije. Ali morate da upravljate rezervnim kopijama, zakrpama i oporavkom.
Više informacija potražite u člancima Izbor putanje migracije baze podataka u Azure i Šta je to Azure SQL?.
Prvi koraci
Postoji nekoliko problema koje možete da rešite ispred kojih možete da unapredite proces migracije pre nego što pokrenete SSMA:
-
Dodavanje indeksa tabele i primarnih ključeva Uverite se da svaka Access tabela ima indeks i primarni ključ. SQL Server zahteva da sve tabele imaju najmanje jedan indeks i zahteva da povezana tabela ima primarni ključ ako se tabela može ažurirati.
-
Provera odnosa primarnog/sporednog ključa Uverite se da su ove relacije zasnovane na poljima sa doslednim tipovima podataka i veličinama. SQL Server ne podržava spojene kolone sa različitim tipovima podataka i veličinama u ograničenjima sporednog ključa.
-
Uklanjanje kolone priloga SSMA ne migrira tabele koje sadrže kolonu Prilog.
Pre nego što pokrenete SSMA, izvršite sledeće prve korake.
-
Zatvorite Access bazu podataka.
-
Uverite se da trenutni korisnici povezani sa bazom podataka takođe zatvaraju bazu podataka.
-
Ako je baza podataka u .mdb, ondauklonite bezbednost na korisničkom nivou.
-
Napravite rezervnu kopiju baze podataka. Više informacija potražite u članku Zaštita podataka procesima pravljenja rezervne kopije i vraćanja u prethodno stanje.
Savet Razmotrite instaliranje izdanja Microsoft SQL Server Express na računaru koje podržava do 10 GB i predstavlja besplatan i lakši način da prođete kroz migraciju i proverite migraciju. Kada se povežete, koristite LocalDB kao instancu baze podataka.
Savet Ako je moguće, koristite samostalnu verziju programa Access.
Pokretanje SSMA
Microsoft obezbeđuje Microsoft SQL Server Migration Assistant (SSMA) kako bi olakšao migraciju. SSMA uglavnom migrira tabele i upite za izdvajanje bez parametara. Obrasci, izveštaji, makroi i VBA moduli se ne konvertuju. Istraživač metapodataka SISTEMA SQL Server prikazuje objekte Access baze podataka i SQL Server objekte omogućavajući vam da pregledate trenutni sadržaj obe baze podataka. Ove dve veze se čuvaju u datoteci za migraciju ako odlučite da ubuduće prenosite dodatne objekte.
Napomena Proces migracije može potrajati u zavisnosti od veličine objekata baze podataka i količine podataka koja se mora preneti.
-
Da biste migrirali bazu podataka pomoću SSMA, prvo preuzmite i instalirajte softver tako što ćete kliknuti dvaput na preuzetu MSI datoteku. Uverite se da ste instalirali odgovarajuću 32 ili 64-bitnu verziju za računar.
-
Kada instalirate SSMA, otvorite je na radnoj površini, po mogućstvu na računaru sa datotekom Access baze podataka.
Takođe možete da je otvorite na računaru koji ima pristup Access bazi podataka sa mreže u deljenoj fascikli.
-
Pratite početna uputstva u usluzi SSMA da biste obezbedili osnovne informacije kao što su LOKACIJA SQL servera, Access baza podataka i objekti za migriranje, informacije o vezi i da li želite da kreirate povezane tabele.
-
Ako migrirate u SQL Server 2016 ili noviju verziju i želite da ažurirate povezanu tabelu, dodajte kolonu za rowversion tako što ćete izabrati stavku Alatke za redigovanje >Postavke projekta > Opšte.
Polje "rowversion" pomaže da se izbegnu neusaglašenosti zapisa. Access koristi ovo polje "rowversion" u povezanoj tabeli SQL servera kako bi utvrdio kada je zapis poslednji put ažuriran. Takođe, ako dodate polje "rowversion" u upit, Access ga koristi za ponovno izbor reda nakon operacije ažuriranja. To poboljšava efikasnost tako što pomaže da se izbegnu greške u neusaglašenosti u pisanju i scenariji brisanja zapisa do kojih može doći kada Access otkrije drugačije rezultate od originalnog prosleđivanja, na primer može da se pojavi sa tipovima podataka sa brojem plutajuće tačke i okidača koji menjaju kolone. Međutim, izbegavajte korišćenje polja "rowversion" u obrascima, izveštajima ili VBA kodu. Više informacija potražite u članku rowversion.
Napomena Izbegavajte mešanje rowversion sa vremenskim oznakama. Iako je vremenska oznaka ključne reči sinonim za konverziju redova u sistemu SQL Server, ne možete da koristite redverziju kao način za označavanje vremenske oznake unosa podataka.
-
Da biste podesili precizne tipove podataka , izaberite stavku Alatke > postavke projekta > tip mapiranja. Na primer, ako skladištite samo engleski tekst, možete da koristite varchar umesto nvarchar tipa podataka.
Konvertovanje objekata
SSMA konvertuje Access objekte u SQL Server objekte, ali ih ne kopira odmah. SSMA pruža listu sledećih objekata za migraciju tako da možete da odlučite da li želite da ih premestite u SQL Server bazu podataka:
-
Tabele i kolone
-
Izaberite stavku Upiti bez parametara.
-
Primarni i sporedni ključevi
-
Indeksi i podrazumevane vrednosti
-
Ograničenja provere (dozvoli svojstvo kolone nulte dužine, pravilo za validaciju kolone, validaciju tabele)
Kao najbolju praksu, koristite izveštaj OSMA proceni koji prikazuje rezultate konverzije, uključujući greške, upozorenja, informativne poruke, procene vremena za obavljanje migracije i pojedinačne korake za ispravljanje grešaka koje treba preduzeti pre nego što stvarno premestite objekte.
Konvertovanje objekata baze podataka preuzima definicije objekata iz Access metapodataka, konvertuje ih u jednaku Transact-SQL (T-SQL) sintaksu, a zatim učitava ove informacije u projekat. Zatim možete da prikažete SQL Server ili SQL Azure objekte i njihova svojstva koristeći SQL Server ili SQL Azure istraživač metapodataka.
Da biste konvertovali, učitali i migrirali objekte u SQL Server, pratite ovaj vodič.
Savet Kada uspešno migrirate Access bazu podataka, sačuvajte datoteku projekta za kasniju upotrebu, tako da možete ponovo da migrirate podatke radi testiranja ili konačne migracije.
Povezivanje tabela
Razmotrite instaliranje najnovije verzije SQL Server OLE DB i ODBC upravljačkih programa umesto izvornih SQL Server upravljačkih programa koji se isporučuju sa operativnim sistemom Windows. Ne samo da su novije upravljačke programe brži, već podržavaju i nove funkcije u Azure SQL-u koje stariji upravljački programi nemaju. Možete da instalirate upravljačke programe na svakom računaru na kojem se koristi konvertovana baza podataka. Više informacija 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 Access tabele, možete da se povežete sa tabelama u sistemu SQL Server koje sada hostuje vaše podatke. Povezivanje direktno iz programa Access pruža i jednostavniji način za prikazivanje podataka umesto složenijih alatki za upravljanje SQL serverom. U zavisnosti od dozvola koje je podesio administrator SQL Server baze podataka, možete izvršiti upite i uređivati povezane podatke.
Napomena Ako kreirate ODBC DSN kada se tokom procesa povezivanja povežete sa SQL Server bazom podataka, kreirajte isti DSN na svim računarima koji koriste novu aplikaciju ili programski koristite nisku veze uskladištenu u DSN datoteci.
Više informacija potražite u člancima Povezivanje sa podacima iz Azure SQL Server baze podataka ili uvoz podataka i Uvoz ili povezivanje sa podacima u SQL Server bazi podataka.
Savet Ne zaboravite da koristite menadžer za povezane tabele u programu Access za jednostavno osvežavanje i ponovno povezivanje tabela. Više informacija potražite u članku Upravljanje povezanim tabelama.
Testirajte i korigujte
Sledeći odeljci opisuju uobičajene probleme na koje možete da naiđete tokom migracije i kako da se bavite njima.
Upiti
Konvertuju se samo upiti za izdvajanje; drugi upiti nisu, uključujući Upite za izdvajanje koji uzimaju parametre. Neki upiti se možda neće u potpunosti konvertovati i SSMA izveštaji prikazuju greške u upitima tokom procesa konverzije. Možete ručno da uredite objekte koji se ne konvertuju pomoću T-SQL sintakse. Sintaksne greške mogu zahtevati i ručno konvertovanje funkcija i tipova podataka specifičnih za Access u SQL Server. Više informacija potražite u članku Poređenje Access SQL-a sa TSQL-om SQL servera.
Tipovi podataka
Access i SQL Server imaju slične tipove podataka, ali budite svesni sledećih potencijalnih problema.
Veliki broj Tip podataka "Veliki broj" skladišti numeričku vrednost koja nije novčana i kompatibilna je sa tipom podataka SQL bigint. Ovaj tip podataka možete da koristite za efikasno izračunavanje velikih brojeva, ali on zahteva korišćenje formata datoteke access 16 (16.0.7812 ili novije verzije) .accdb formata baze podataka i bolje radi sa 64-bitnom verzijom programa Access. Više informacija potražite u člancima Korišćenje tipa podataka " Veliki broj" i Izbor 64-bitne ili 32-bitne verzije sistema Office.
Da/ne Access da/Ne kolona se podrazumevano konvertuje u SQL Server bitno polje. Da biste izbegli zaključavanje zapisa, uverite se da je polje bita podešeno da onemogućava PRAZNE vrednosti. U funkciji SSMA, možete da izaberete bit kolonu da biste postavili svojstvo Allow Nulls na NE. U programu TSQL koristite izraz CREATE TABLE ili ALTER TABLE .
Datum i vreme Postoji nekoliko stvari koje treba uzeti u obzir za datum i vreme:
-
Ako je nivo kompatibilnosti baze podataka 130 (SQL Server 2016) ili noviji, a povezana tabela sadrži jednu ili više kolona datuma ili datuma i vremena2, tabela može da vrati poruku #deleted rezultatima. Više informacija potražite u članku Access povezana tabela sa SQL-Server vraća #deleted.
-
Koristite Access tip podataka "Datum/vreme" da biste mapirali tip podataka "datum/vreme". Koristite Access tip podataka "Datum/vreme" da biste mapirali tip podataka datetime2 koji ima veći opseg datuma i vremena. Više informacija potražite u članku Korišćenje proširenog tipa podataka "Datum/vreme".
-
Prilikom izvršavanja upita za datume u sistemu SQL Server, uzmite u vidu vreme, kao i datum. Na primer:
-
DatumPoručeno Između 1.1.19. i 31.1.2019. možda neće biti uključene sve porudžbine.
-
DateOrdered Between 1/1/19 00:00:00 am And 1/31/19 11:59:59 PM sadrži sve porudžbine.
-
Prilog Tip podataka Prilog skladišti datoteku u Access bazi podataka. U sistemu SQL Server imate nekoliko opcija za razmatranje. Datoteke možete da izdvojite iz Access baze podataka, a zatim razmotrite skladištenje veza ka datotekama u SQL Server bazi podataka. Alternativno, možete da koristite FILESTREAM, FileTables ili Remote BLOB skladište (RBS) za čuvanje priloga u SQL Server bazi podataka.
Hipervezu Access tabele imaju kolone sa hipervezama koje SQL Server ne podržava. Te kolone će podrazumevano biti konvertovane u nvarchar(max) kolone u sistemu SQL Server, ali mapiranje možete da prilagodite da biste odabrali manji tip podataka. U Access rešenju i dalje možete da koristite ponašanje hiperveza u obrascima i izveštajima ako postavite svojstvo Hyperlink za kontrolu na tačno.
Polje sa više vrednosti Access polje sa više vrednosti konvertuje se u SQL Server kao ntext polje koje sadrži razgraničeni skup vrednosti. Budući da SQL Server ne podržava tip podataka sa više vrednosti koji modeluje relaciju više-prema-više, možda će biti potrebno uložiti dodatnog truda u dizajniranje i konvertovanje.
Više informacija o mapiranju Access i SQL Server tipova podataka potražite u članku Poređenje tipova podataka.
Napomena Polja sa više vrednosti se ne konvertuju.
Više informacija potražite u članku Tipovi datuma i vremena, Niska i binarni tipovi i numerički tipovi.
Visual Basic
Iako SQL Server ne podržava VBA, obratite paznju na sledeće moguće probleme:
VBA funkcije u upitima Access upiti podržavaju VBA funkcije na podacima u koloni upita. Međutim, Access upite koji koriste VBA funkcije nije moguće pokrenuti u sistemu SQL Server, tako da se svi traženi podaci prosleđuju programu Microsoft Access radi obrade. U većini slučajeva ovi upiti bi trebalo da se konvertuju u prolazne upite.
Korisnički definisane funkcije u upitima Microsoft Access upiti podržavaju upotrebu funkcija definisanih u VBA modulima za obradu podataka koji im se prosleđuju. Upiti mogu biti samostalni upiti, SQL izrazi u izvorima zapisa obrasca/izveštaja, izvori podataka kombinovanih okvira i okvira sa listom u obrascima, izveštajima i poljima tabele i podrazumevanim izrazima ili izrazima pravila za validaciju. SQL Server ne može da pokrene ove korisnički definisane funkcije. Možda ćete morati ručno da redizajnirate ove funkcije i konvertujete ih u uskladištene procedure u sistemu SQL Server.
Optimizuj performanse
Do sada je najvažniji način da optimizujete performanse sa novim, potpornim SQL Server serverom da odlučite kada da koristite lokalne ili udaljene upite. Kada migrirate podatke u SQL Server, premeštate se i sa servera datoteka na model računarskog modela baze podataka klijent-servera. Sledite ove opšte smernice:
-
Pokrenite male upite samo za čitanje na klijentu radi najbržeg pristupa.
-
Pokreni upite za čitanje/pisanje na serveru da biste iskoristili veću moć obrade.
-
Umanjite mrežni saobraćaj pomoću filtera i agregacije da biste preneli samo potrebne podatke.
Dodatne informacije potražite u članku Kreiranje prolaznog upita.
Slede dodatna, preporučena uputstva.
Stavi logiku na server Aplikacija takođe može da koristi prikaze, korisnički definisane funkcije, uskladištene procedure, izračunata polja i okidače za centralizaciju i deljenje logike aplikacije, poslovnih pravila i smernica, složenih upita, validacije podataka i koda referencijalnog integriteta na serveru, a ne na klijentu. Zapitajte se da li ovaj upit ili zadatak mogu da se izvršavaju na serveru bolje i brže? Na kraju, testirajte svaki upit da biste obezbedili optimalne performanse.
Korišćenje prikaza u obrascima i izveštajima U programu Access uradite sledeće:
-
Za obrasce koristite SQL prikaz za obrazac samo za čitanje i SQL indeksiran prikaz za obrazac za čitanje/pisanje kao izvor zapisa.
-
Za izveštaje koristite SQL prikaz kao izvor zapisa. Međutim, kreirajte zaseban prikaz za svaki izveštaj, tako da možete lakše da ažurirate određeni izveštaj, bez uticaja na druge izveštaje.
Umanjivanje učitavanja podataka u obrascu ili izveštaju Ne prikazuj podatke dok ih korisnik ne zatraži. Na primer, ostavite svojstvo izvora zapisa prazno, podesite korisnike da izaberu filter u obrascu, a zatim popune svojstvo izvora zapisa filterom. Možete i da koristite odredbu Where za DoCmd.OpenForm i DoCmd.OpenReport da biste prikazali tačne zapise potrebne korisniku. Razmotrite isključivanje navigacije zapisima.
Budite pažljivi sa heterogenim upitima Izbegavajte pokretanje upita koji kombinuje lokalnu Access tabelu i SQL Server povezanu tabelu, koji se ponekad naziva hibridni upit. Ovaj tip upita i dalje zahteva da Access preuzme sve SQL Server podatke na lokalni računar, a zatim pokrene upit, on ne pokreće upit u sistemu SQL Server.
Kada se koriste lokalne tabele Razmotrite korišćenje lokalnih tabela za podatke koji se retko promene, kao što je lista država ili pokrajina u zemlji ili regionu. Statične tabele se često koriste za filtriranje i mogu bolje da se izvršavaju na Access izloženom računaru.
Više informacija potražite u člancima Savetnik za podešavanje mašine baze podataka, Korišćenje alatke za analizu performansi za optimizaciju Access baze podataka i Optimizovanje Microsoft Office Access aplikacija povezanih sa SISTEMOM SQL Server.
Takođe pogledajte
Vodič za migraciju azure baze podataka
Microsoft Access u SQL Server migraciju, konverziju i unapređivanje