Accessi andmebaasi migreerimine SQL Serverisse
Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Meil kõigil on piirangud ja Accessi andmebaas pole erand. Näiteks Accessi andmebaasi mahupiirang on 2 GB ja see ei toeta rohkem kui 255 samaaegset kasutajat. Seega, kui teie Accessi andmebaasil on aeg minna järgmisele tasemele, saate migreerida SQL Serverisse. SQL Server (nii kohapealne kui ka Azure'i pilv) toetab suuremat andmehulka, samaaegseid kasutajaid ja on suurem kui andmebaasimootor JET/ACE. See juhend annab teile sujuva alguse SQL Serveri teekonnast, aitab säilitada teie loodud Accessi eeslahendusi ning motiveerib teid loodetavasti kasutama Accessi edaspidiste andmebaasilahenduste jaoks. Migreerimiseks kasutage Microsoft SQL Serveri migreerimise abimeest (SSMA), tehke järgmist.

Andmebaasi SQL Serverisse migreerimise etapid

Enne alustamist

Järgmistes jaotistes on taustateave ja muu teave, mis aitab teil algust teha.

Tükeldatud andmebaasid

Kõik Accessi andmebaasiobjektid võivad olla ühes andmebaasifailis või kahes andmebaasifailis: ees- ja tagaandmebaasis. Seda nimetatakse andmebaasi tükeldamiseks ja selle eesmärk on hõlbustada ühiskasutust võrgukeskkonnas. Tagaandmebaasifail peab sisaldama ainult tabeleid ja seoseid. Eesfail peab sisaldama ainult kõiki muid objekte (sh vorme, aruandeid, päringuid, makrosid, VBA mooduleid ja tagaandmebaasi lingitud tabeleid). Accessi andmebaasi migreerimisel sarnaneb see tükeldatud andmebaasiga selles, et SQL Server toimib nüüd serveris asuvate andmete uue tagaandmebaasina.

Selle tulemusena saate endiselt hallata Accessi eesandmebaasi sql Serveri tabelitega lingitud tabelitega. Tõhusalt saate ära kasutada Accessi andmebaasi pakutava kiire rakendusearenduse eeliseid ning SQL Serveri skaleeritavust.

SQL Serveri eelised

Kas vajate SQL Serverisse migreerimiseks veel veenvaid andmeid? Siin on mõned täiendavad eelised, mida mõelda.

  • Rohkem samaaegseid kasutajaid    SQL Server saab käsitleda paljusid samaaegseid kasutajaid kui Access ja minimeerib mäluvajadusi, kui lisatakse rohkem kasutajaid.

  • Suurem kättesaadavus    SQL Serveri abil saate andmebaasi dünaamiliselt varundada (astmeliselt või lõpule viia), kui see on kasutuses. Seetõttu ei pea te andmete varundamiseks sundima kasutajaid andmebaasist väljuma.

  • Suur jõudlus ja mastaabitavus    SQL Serveri andmebaas toimib tavaliselt paremini kui Accessi andmebaas, eriti suure terabaidisuurusega andmebaasi puhul. Samuti töötleb SQL Server päringuid palju kiiremini ja tõhusamalt, töötledes päringuid paralleelselt, kasutades kasutajataotluste töötlemiseks ühes protsessis mitut omalõnga.

  • Täiustatud turve    Usaldusväärse ühenduse kasutamisel integreeruvad SQL Server Windowsi süsteemiturbega, et pakkuda ühtset integreeritud juurdepääsu võrgule ja andmebaasile, kasutades mõlema turbesüsteemi parimaid võimalusi. See lihtsustab keerukate turbeskeemide haldamist. SQL Server on ideaalne salvestusruum tundliku teabe (nt isikukoodide, krediitkaardiandmete ja konfidentsiaalsete aadresside) jaoks.

  • Kohene taastatavus     Kui operatsioonisüsteem jookseb kokku või toide läheb välja, saab SQL Server andmebaasi mõne minutiga automaatselt ühtsesse olekusse taastada, ilma et andmebaasiadministraator sekkuks.

  • VPN-i kasutamine    Access ja virtuaalsed privaatvõrgud (VPN) ei saa kaasa. KUID SQL Serveriga saavad kaugkasutajad siiski kasutada Accessi eesandmebaasi töölaual ja VPN-i tulemüüri tagasüsteemis asuvat SQL Serveri tagaandmebaasi.

  • Azure SQL Server    Lisaks SQL Serveri eelistele pakub dünaamilist skaleeritavust ilma seisakuajata, nutika optimeerimisega, globaalse skaleeritavuse ja kättesaadavusega, riistvarakulude kõrvaldamisega ja haldusega.

Valige parim Azure SQL Serveri suvand

Kui migreerite Azure SQL Serverisse, on teil kolm võimalust, millest igaühel on erinevad eelised.

  • Ühekordsed andmebaasi-/elastsed kogumid    See suvand sisaldab oma ressursikogumit, mida hallatakse SQL-andmebaasi serveri kaudu. Üks andmebaas on nagu SQL Serveris sisalduv andmebaas. Samuti saate lisada elastse kogumi, mis on SQL-andmebaasiserveri kaudu hallatava ühisressurssidekogumiga andmebaaside kogum. Kõige sagedamini kasutatavad SQL Serveri funktsioonid on saadaval sisseehitatud varukoopiate, paikamiste ja taastefunktsioonidega. Kuid ei ole tagatud täpset hooldusaega ja migreerimine SQL Serverist võib olla raske.

  • Hallatav eksemplar    See suvand on süsteemi- ja kasutajaandmebaaside kogum, millel on ühisressursid. Hallatav eksemplar on nagu SQL Serveri andmebaasi eksemplar, mis ühildub suurel hulgal kohapealse SQL Serveriga. Hallataval eksemplaril on sisseehitatud varukoopiad, paigad, taaste ja seda on lihtne SQL Serverist migreerida. Siiski on vähe SQL Serveri funktsioone, mis pole saadaval ja tagatud täpne hooldusaeg.

  • Azure Virtual Machine    Selle suvandi abil saate SQL Serveri käivitada Azure'i pilvteenuse virtuaalarvutis. Teil on täielik kontroll SQL Serveri mootori ja hõlpsa migreerimistee üle. Kuid peate haldama varukoopiaid, paiku ja taastet.

Lisateavet leiate teemadest Andmebaasi migreerimistee valimine Azure'i ja Mis on Azure SQL?.

Esimesed toimingud

Enne SSMA käivitamist saate migreerimisprotsessi sujuvamaks muuta.

  • Tabeliindeksite ja primaarvõtmete lisamine    Veenduge, et igal Accessi tabelil oleks indeks ja primaarvõti. SQL Serveris peab kõigil tabelitel olema vähemalt üks indeks ja tabeli värskendamiseks peab lingitud tabelil olema primaarvõti.

  • Primaar-/välisvõtme seoste kontrollimine    Veenduge, et need seosed põhineksid väljadel, millel on ühtsed andmetüübid ja -mahud. SQL Server ei toeta liidetud veerge, millel on erinevad andmetüübid ja mahud välisvõtme piirangutes.

  • Veeru Manus eemaldamine    SSMA ei migreeri tabeleid, mis sisaldavad veergu Manus.

Enne SSMA käivitamist tehke järgmist.

  1. Sulgege Accessi andmebaas.

  2. Veenduge, et andmebaasiga ühendatud praegused kasutajad sulgeksid ka andmebaasi.

  3. Kui andmebaas on .mdb failivormingus, siis eemaldage kasutajatasandi turve.

  4. Varundage andmebaas. Lisateavet leiate teemast Andmete kaitsmine varundus- ja taasteprotsesside abil.

Näpunäide    Kaaluge microsoft SQL Server Expressi väljaande installimist oma töölauale, mis toetab kuni 10 GB ja on tasuta ja hõlpsam viis migreerimise läbimiseks ja kontrollimiseks. Ühenduse loomisel kasutage andmebaasieksemplarina LocalDB-i.

Näpunäide    Võimaluse korral kasutage Accessi autonoomst versiooni.

Käivita SSMA

Microsoft pakub migreerimise hõlbustamiseks Microsoft SQL Serveri migreerimise abimeest (SSMA). SSMA migreerib peamiselt tabeleid ja valikupäringuid ilma parameetriteta. Vorme, aruandeid, makrosid ja VBA-mooduleid ei teisendata. SQL Serveri metaandmete Exploreris kuvatakse teie Accessi andmebaasiobjektid ja SQL Serveri objektid, mis võimaldavad teil mõlema andmebaasi praegust sisu läbi vaadata. Kui otsustate tulevikus täiendavaid objekte üle kanda, salvestatakse need kaks ühendust teie migreerimisfaili.

Märkus    Migreerimine võib võtta aega olenevalt teie andmebaasiobjektide mahust ja edastatavate andmete mahust.

  1. Andmebaasi migreerimiseks SSMA abil laadige esmalt alla ja installige tarkvara, topeltklõpsates allalaaditud MSI-faili. Installige kindlasti oma arvuti jaoks sobiv 32- või 64-bitine versioon.

  2. Pärast SSMA installimist avage see oma töölaual, eelistatavalt accessi andmebaasifailiga arvutist.

    Saate selle avada ka arvutis, millel on juurdepääs Accessi andmebaasile ühiskausta võrgu kaudu.

  3. Põhiteabe (nt SQL Serveri asukoht, Accessi andmebaas ja migreeritavad objektid, ühendusteave ja lingitud tabelite loomine) andmiseks järgige SSMA algusjuhiseid.

  4. Kui migreerite SQL Server 2016 või uuemasse versiooni ja soovite lingitud tabelit värskendada, lisage reaversioon veerg, valides Läbivaatusriistad > Projecti sätted > Üldine.

    Väli rowversion aitab vältida kirjekonflikte. Access kasutab seda SQL Serveri lingitud tabeli reaversiooni välja, et määratleda, millal kirjet viimati värskendati. Kui lisate päringusse reaversiooni välja, kasutab Access seda rea uuesti valimiseks pärast värskendustoimingut. See parandab tõhusust, aidates vältida kirjutuskonfliktide tõrkeid ja kirjete kustutamise stsenaariume, mis võivad ilmneda siis, kui Access tuvastab algsest edastusest erinevaid tulemeid, näiteks ujukomaarvu andmetüüpide ja veergude muutmispäästikute korral. Vältige siiski rowversioni välja kasutamist vormides, aruannetes või VBA-koodis. Lisateavet leiate teemast Rowversion.

    Märkus    Vältige ajatemplitega reavahetamist. Kuigi märksõna ajatempel on SQL Serveris rowversioni sünonüüm, ei saa rowversioni kasutada andmesisestuse ajatemplina.

  5. Täpsete andmetüüpide määramiseks valige Läbivaatusriistad > Projektisätted > Tüübivastendus. Näiteks kui talletate ainult ingliskeelset teksti, saate andmetüübi nvarchar asemel kasutada muutuvpikkusega diagramme.

Objektide teisendamine

SSMA teisendab Accessi objektid SQL Serveri objektideks, kuid ei kopeeri objekte kohe. SSMA sisaldab järgmiste migreeritavate objektide loendit, et saaksite otsustada, kas soovite need SQL Serveri andmebaasi teisaldada.

  • Tabelid ja veerud

  • Valige Parameetriteta päringud.

  • Primaar- ja võõrvõtmed

  • Registrid ja vaikeväärtused

  • Kontrolli piiranguid (luba nullpikkusega veeruatribuut, veeru valideerimisreegel, tabeli valideerimine)

Parima tulemuse saamiseks kasutage SSMA hindamisaruannet, mis näitab teisendustulemusi (sh tõrked, hoiatused, teavitusteated, migreerimise ajahinnangud ja individuaalsed veaparandustoimingud enne objektide teisaldamist).

Andmebaasiobjektide teisendamisel kasutatakse Accessi metaandmetest objektimääratlusi, teisendatakse need samaväärseks Transact-SQL-i (T-SQL) süntaksiks ja laaditakse see teave projekti. Seejärel saate SQL Serveri või SQL Azure'i objekte ja nende atribuute vaadata SQL Serveri või SQL Azure'i metaandmete Exploreri abil.

Objektide SQL Serverisse teisendamiseks, laadimiseks ja migreerimiseks järgige seda juhendit.

Näpunäide    Kui olete Oma Accessi andmebaasi migreerinud, salvestage projektifail hilisemaks kasutamiseks, et saaksite testimiseks või lõplikuks migreerimiseks oma andmed uuesti migreerida.

Tabelite linkimine

Windowsiga saadetavate SQL Serveri draiverite asemel võiksite installida SQL Serveri OLE DB ja ODBC draiverite uusima versiooni. Lisaks uuemate draiverite kiiremale versioonile toetavad need Azure SQL-i uusi funktsioone, mida eelmised draiverid ei toeta. Draiverid saate installida igasse arvutisse, kus teisendatud andmebaasi kasutatakse. Lisateavet leiate teemadest Microsoft OLE DB Driver 18 FOR SQL Server ja Microsoft ODBC Driver 17 for SQL Server.

Pärast Accessi tabelite migreerimist saate linkida sql Serveri tabelitega, mis nüüd teie andmeid majutavad. Otse Accessist linkimise abil saate oma andmeid hõlpsamini vaadata, mitte kasutada keerukamaid SQL Serveri haldustööriistu.  Olenevalt SQL Serveri andmebaasi administraatori määratud õigustest saate lingitud andmete kohta päringuid teha ja redigeerida.

Märkus    Kui loote linkimise käigus SQL Serveri andmebaasiga linkimisel ODBC DSN-i, looge sama DSN kõigis arvutites, mis kasutavad uut rakendust, või programmiliselt DSN-faili salvestatud ühendusstringi.

Lisateavet leiate teemadest Azure SQL Serveri andmebaasi andmetega linkimine või andmete importimine ja SQL Serveri andmebaasi andmete importimine või linkimine.

Näpunäide   Ärge unustage kasutada Accessis lingitud tabelite haldurit tabelite mugavaks värskendamiseks ja uuesti linkimiseks. Lisateavet leiate teemast Lingitud tabelite haldamine.

Testimine ja läbivaatamine

Järgmistes jaotistes kirjeldatakse migreerimise ajal ilmneda võivaid levinud probleeme ja nende lahendamist.

Päringud

Teisendatakse ainult valikupäringud; muud päringud pole( sh parameetritega valikupäringud). Mõned päringud ei pruugi teisendada täielikult ja SSMA teatab teisendamise käigus päringutõrkeid. T-SQL-süntaksi abil saate käsitsi redigeerida objekte, mida ei teisendata. Süntaksivigade korral võib olla vaja Accessi-kohased funktsioonid ja andmetüübid käsitsi SQL Serverisse teisendada. Lisateavet leiate teemast Access SQL-i võrdlemine SQL Serveri TSQL-iga.

Andmetüübid

Accessis ja SQL Serveris on sarnaseid andmetüüpe, kuid pidage meeles järgmisi võimalikke probleeme.

Suur arv    Andmetüüp Suur arv talletab mitterahalist arvväärtust ja ühildub andmetüübiga SQL bigint. Seda andmetüüpi saate kasutada suurte arvude tõhusamaks arvutamiseks, kuid selleks on vaja Access 16 (16.0.7812 või uuemat) ACCDB-andmebaasifailivormingut ja see toimib paremini Accessi 64-bitise versiooniga. Lisateavet leiate teemadest Andmetüübi Suur arv kasutamine ja Office'i 64- või 32-bitise versiooni valimine.

Jah/ei    Accessi jah/ei veerg teisendatakse vaikimisi SQL Serveri bitiväljaks. Kirjete lukustamise vältimiseks veenduge, et bitiväli oleks seatud nullväärtusi keelama. SSMA-s saate valida bitiveeru, et seada atribuudi Allow Nulls (Luba nullid) väärtuseks NO (EI). Kasutage TSQL-is lauseid CREATE TABLE või ALTER TABLE .

Kuupäev ja kellaaeg    Kuupäeva ja kellaaja kaalutlusi on mitu.

  • Kui andmebaasi ühilduvustase on 130 (SQL Server 2016) või uuem ja lingitud tabel sisaldab ühte või mitut kuupäeva- või kuupäeva- või kuupäevajaga2 veergu, võib tabel tagastada teate, #deleted tulemites. Lisateavet leiate teemast Accessi lingitud tabel SQL-Server andmebaasi tagastab #deleted.

  • Kasutage andmetüüpi Accessi kuupäev/kellaaeg, et vastenduda kuupäeva ja kellaaja andmetüübiga. Andmetüübi Access Date/Time Extended abil saate vastenduda andmetüübiga datetime2 , millel on suurem kuupäeva- ja kellaajavahemik. Lisateavet leiate teemast Andmetüübi "Kuupäeva/kellaaja pikendatud" kasutamine.

  • SQL Serveris kuupäevapäringu esitamisel võtke arvesse nii kellaaega kui ka kuupäeva. Siin on mõned näited.

    • DateOrdered Between 1/19 and 31.19.19 ei pruugi sisaldada kõiki tellimusi.

    • DateOrdered Between 1/19 00:00:00 AM And 31/19 11:59:59 PL sisaldab kõiki tellimusi.

Manus;   Andmetüüp Manus talletab faili Accessi andmebaasis. SQL Serveris on kaalumiseks mitu võimalust. Saate failid Accessi andmebaasist ekstraktida ja seejärel kaaluda failide linkide talletamist SQL Serveri andmebaasis. Teise võimalusena saate SQL Serveri andmebaasis talletatud manuste säilitamiseks kasutada FILESTREAMi, FileTables-faile või kaug-BLOB-salve (RBS).

Hüperlink    Accessi tabelites on hüperlingiveerud, mida SQL Server ei toeta. Vaikimisi teisendatakse need veerud SQL Serveris veergudeks nvarchar(max), kuid väiksema andmetüübi valimiseks saate vastendust kohandada. Accessi lahenduses saate hüperlingi käitumist vormides ja aruannetes siiski kasutada, kui määrate juhtelemendi atribuudi Hüperlink väärtuseks tõene.

Mitmeväärtuseline väli    Accessi mitmeväärtuseline väli teisendatakse SQL Serveriks ntexti väljana, mis sisaldab eraldajatega väärtuste kogumit. Kuna SQL Server ei toeta mitu-mitmele-seost kujutavat mitmeväärtuselist andmetüüpi, võib vaja minna täiendavat kooste- ja teisendustööd.

Lisateavet Accessi ja SQL Serveri andmetüüpide vastendamise kohta leiate teemast Andmetüüpide võrdlemine.

Märkus    Mitmeväärtuselist välja ei teisendata.

Lisateavet leiate teemadest Kuupäeva- ja kellaajatüübid, Stringi- ja binaartüübid ning Arvutüübid.

Visual Basic

Kuigi SQL Server ei toeta VBA-t, võtke arvesse järgmisi võimalikke probleeme.

VBA-funktsioonid päringutes    Accessi päringud toetavad VBA-funktsioone päringuveeru andmetega. Kuid Accessi päringuid, mis kasutavad VBA-funktsioone, ei saa SQL Serveris käitada, nii et kõik taotletud andmed edastatakse töötlemiseks Microsoft Accessile. Enamasti tuleks need päringud teisendada läbivateks päringuteks.

Kasutaja määratletud funktsioonid päringutes    Microsoft Accessi päringud toetavad VBA-moodulites määratletud funktsioonide kasutamist neile edastatud andmete töötlemiseks. Päringud võivad olla eraldiseisvad päringud, SQL-laused vormi-/aruandekirje allikates, vormide, aruannete ja tabeliväljade liitbokside ja loendibokside andmeallikad ning vaike- või valideerimisreegli avaldised. SQL Server ei saa neid kasutaja määratletud funktsioone käitada. Võimalik, et peate need funktsioonid käsitsi ümber kujundama ja teisendama SQL Serveri salvestatud protseduurideks.

Jõudluse optimeerimine

Siiani on kõige olulisem viis jõudluse optimeerimiseks uue sql Serveri tagasüsteemiga otsustada, millal kasutada kohalikke või kaugpäringuid. Andmete migreerimisel SQL Serverisse teisaldate ka failiserverist andmetöötluse kliendi-serveri andmebaasimudelisse. Järgige neid üldisi juhiseid.

  • Kiireima juurdepääsu saamiseks käivitage klientrakenduses väikesed kirjutuskaitstud päringud.

  • Suurema töötlusvõimsuse kasutamiseks saate serveris käitada pikki lugemis- ja kirjutuspäringuid.

  • Minimeerige filtrite ja koondamisega võrguliiklus, et edastada ainult vajalikud andmed.

Jõudluse optimeerimine klientserveri andmebaasimudelis

Lisateavet leiate teemast Läbiva päringu loomine.

Järgmised on täiendavad soovitatavad juhised.

Loogika paigutamine serverisse     Rakendus saab kasutada ka vaateid, kasutaja määratletud funktsioone, salvestatud protseduure, arvutatud välju ja päästikuid rakenduse loogika, ärireeglite ja poliitikate, keerukate päringute, andmete valideerimise ja viitamistervikluse koodi tsentreerimiseks ja jagamiseks serveris, mitte kliendis. Küsige endalt, kas seda päringut või toimingut saab serveris paremini ja kiiremini sooritada? Lõpuks testige iga päringut optimaalse jõudluse tagamiseks.

Vormides ja aruannetes vaadete kasutamine    Tehke Accessis järgmist.

  • Vormide puhul kasutage sql-i vaadet kirjutuskaitstud vormi jaoks ja SQL-i indekseeritud vaadet lugemis- ja kirjutamisvormi jaoks kirjeallikana.

  • Aruannetes kasutage kirjeallikana SQL-vaadet. Kuid looge iga aruande jaoks eraldi vaade, et saaksite hõlpsamini värskendada konkreetset aruannet, ilma et see mõjutaks muid aruandeid.

Vormi või aruande andmete laadimise minimeerimine    Ärge kuvage andmeid enne, kui kasutaja seda küsib. Näiteks jätke kirjeallika atribuut tühjaks, kasutajad valivad teie vormil filtri ja asustavad kirjeallika atribuudi oma filtriga. Või kasutage doCmd.OpenFormi ja DoCmd.OpenReporti where-klauslit, et kuvada täpsed kirjed, mida kasutaja vajab. Võiksite kirje navigeerimise välja lülitada.

Olge heterogeensete päringutega ettevaatlik   Vältige sellise päringu käitamist, mis kombineerib kohalikku Accessi tabelit ja SQL Serveriga lingitud tabelit, mida mõnikord nimetatakse hübriidpäringuks. Seda tüüpi päringu jaoks peab Access laadima kõik SQL Serveri andmed kohalikku arvutisse alla ja seejärel päringu käivitama, kuid päringut SQL Serveris ei käitata.

Millal kasutada kohalikke tabeleid?    Kasutage kohalikke tabeleid andmete jaoks, mis harva muutuvad (nt riigi või piirkonna osariikide või provintside loend). Staatilisi tabeleid kasutatakse sageli filtreerimiseks ja need võivad Accessi eesserveris paremini toimida.

Lisateavet leiate artiklitest Andmebaasimootori häälestamisnõustaja, Jõudluse analüsaatori kasutamine Accessi andmebaasi optimeerimiseks ja SQL Serveriga lingitud Microsoft Office Accessi rakenduste optimeerimine.

Lisateave

Azure'i andmebaasi migreerimise juhend

Microsofti andmete migreerimise ajaveeb

Microsoft Accessi SQL Serveri migreerimine, teisendamine ja ülesmastaapimine

Accessi töölauaandmebaasi ühiskasutamise viisid

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.