sql >> Database teknologi >  >> RDS >> Sqlserver

Migrering af en Microsoft Access-database til SQL Server

Introduktion

Microsoft Access er et populært desktop-databasestyringssystem, der inkorporerer applikationsudviklingsværktøjer (formularer, rapporter, forespørgsler, VBA-makroer) med en relationel DBMS. MS Access er ideel til individuelle brugere eller for små arbejdsgrupper, hvor nogle få brugere arbejder på dataene på samme tid ved at dele en MS Access-databasefil over et lokalt netværk.

Men når antallet af samtidige brugere vokser til over en håndfuld, begynder MS Access at støde på problemer med at dele dataene. En løsning på dette "opskaleringsproblem" er at opdele MS Access-databasen og hoste dataene i en serverbaseret DBMS såsom Microsoft SQL Server.

Microsoft tilbyder et praktisk værktøj kaldet "Microsoft SQL Server Migration Assistant for MS Access" (SSMA) til at hjælpe med at flytte databasetabellerne fra en MS Access-database til SQL Server. Før du går ind i de faktiske trin i denne proces, er det nyttigt at forstå arkitekturen i et MS Access-databasesystem. Denne arkitektur er beskrevet fra næste side.

Forudsætninger

Før du går videre med denne øvelse, skal du sørge for, at følgende software er på plads.

Denne tutorial blev skrevet ved hjælp af Microsoft Access 2013 (fra 64-bit MS Office), der kører på et Windows 7 64-bit operativsystem. MS Access 2010 og 2016 fungerer muligvis også, men er ikke blevet testet. Sørg for at tjekke MS Office, da 32-bit MS Access ikke vil have den korrekte support til at tillade SSMA at fungere.

Du skal muligvis også installere MS Access 2010 Runtime-softwaren. Denne software blev oprindeligt designet til at læse MS Access-databasefiler uden at skulle installere en komplet version af MS Access. QL Server Migration Assistant bruger Data Access Objects (DAO) delene i MS Access 2010 Runtime til at åbne MS Access-filer.

Et eksempel på en MS Access-databasefil leveres (se næste sider for links til denne fil).

Måldatabasestyringssystemet vil være Microsoft SQL Server. Denne vejledning kræver legitimationsoplysninger (brugernavn, adgangskode osv.) til en SQL Server-instans. Du kan installere MS SQL Server på din egen pc eller server, bruge en eksisterende server i dit hjem eller på din arbejdsplads, eller bruge en cloud-baseret tjeneste til at hoste SQL Server for dig. En vejledning om opsætning af en SQL Server-instans på GearHost findes her:/getting-started-with-gearhost-for-sql-server-database-development/

Bemærk, at fra og med 2021 har GearHost ikke længere en Free-Tier SQL Server-instans. Du kan prøve at få en elevkonto på Microsoft Azure og bruge Azure SQL-databasen.

Du bør også have Microsoft SQL Server Management Studio tilgængeligt for direkte at udforske og arbejde med SQL Server. Brug SQL Server Management Studio til at oprette forbindelse til din SQL Server-instans og oprette en tom database.

En SQL Server-instans, der hostes af GearHost, bruges til denne øvelse. En eksempeldatabase ved navn testmssqldb1 blev oprettet som vist i SQL Server Management Studio Object Explorer nedenfor.

Endelig skal du sørge for at lave en sikkerhedskopi af enhver MS Access-databasefil(er), før du migrerer dem til SQL Server.

Det næste afsnit introducerer arkitekturen i en Microsoft Access-database.

Microsoft Access Database Architecture

De fleste informationssystemer, der bruger en database til at lagre data, kan beskrives af fire hovedkomponenter:

  1. Brugergrænseflade – Det er de formularer, rapporter og forespørgsler, som systemets slutbrugere interagerer med.
  2. Forretningslogik – Dette er programmeringskode, der implementerer forskellige forretningsregler, som organisationen opererer efter. For eksempel kan der være en forretningsregel om, at ingen medarbejder kan tildeles mere end 30 timer om ugen på et enkelt projekt. Denne regel vil blive implementeret i programmeringskode.
  3. Databasestyringssystem – Dette er softwaren, der bruges til at administrere data i databasen. Det kan også have funktioner såsom samtidighedskontrol, der giver flere brugere mulighed for sikkert at arbejde med dataene. Nogle eksempler på DBMS omfatter MS Access, MS SQL Server, Oracle, MySQL og Postgres.
  4. Database – Det er her, de faktiske data gemmes. Typisk er data organiseret i et sæt databasetabeller. Hver tabel har kolonner og dataposter.

En databasesystemarkitektur beskriver, hvordan hver af disse fire komponenter er arrangeret. Ofte bruges udtrykket "Front End" til at beskrive brugergrænsefladen og Business Logic-komponenterne. "Back End" består af DBMS og databasen.

Som en desktop DBMS gemmer MS Access alle komponenterne i databasesystemapplikationen i en enkelt fil. DBMS-softwaren kører på den stationære computer. Dataindtastningsformularer, rapporter og forespørgsler interagerer med databasetabellerne, der er gemt i den samme MS Access-databasefil (.accdb-fil) som vist i nedenstående figur.

For at dele MS Access-data over et lokalt netværk kan vi "dele" databasefilen i to. En fil vil indeholde formularer, rapporter, forespørgsler og andre dele af databaseapplikationen, mens den anden databasefil kun vil indeholde databasetabellerne og deres data. Applikationskomponenterne (formularer, rapporter osv.) vil bruge eksterne links til den anden databasefil til at hente og opdatere data. Dette er vist i figuren nedenfor.

Efterhånden som antallet af brugere stiger, vil denne metode til at dele data blive begrænsende. I dette tilfælde kan vi migrere databasetabellerne til Microsoft SQL Server. Igen vil eksterne links blive brugt til at forbinde applikationskomponenterne (skemaer, rapporter osv.) til databasetabellerne som vist i figuren nedenfor.

Denne "opdeling" eller "op-størrelse" til SQL Server-tilgang er fokus i denne øvelse.

Det næste afsnit introducerer et eksempel på en MS Access-database, som vil blive brugt til at demonstrere databasemigreringen.

Eksemplet medarbejderdatabase

Denne vejledning gør brug af en simpel medarbejderdatabase, som kan downloades fra dette link. I denne database er der 4 hovedtabeller:Afdeling, Medarbejder, Projekt og Projekt_Opgave.

Relationerne mellem tabeller er vist nedenfor:

Der er 5 dataindtastningsformularer, en forespørgsel og en rapport.

Brug et par minutter på at udforske denne database, før du går videre i selvstudiet. Sørg for at lukke databasefilen, når du er færdig med at udforske. Lav også en sikkerhedskopi af filen, hvis du ønsker at gentage denne øvelse i fremtiden.

I det næste afsnit af denne øvelse vil Microsoft SQL Server Migration Assistant for MS Access-værktøjerne blive downloadet og installeret.

Download og installation af Microsoft SQL Server Migration Assistant til MS Access

Microsoft SQL Server Migration Assistant for MS Access kan downloades fra følgende Microsoft-websted:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Klik på Download knappen og gem derefter den nye fil. Filnavnet skal være noget i stil med SSMA for Access.7.3.0.msi, selvom en nyere version muligvis er tilgængelig i fremtiden. Dobbeltklik på filen SSMA for Access.7.3.0.msi for at starte installationsprogrammet.

Når velkomstskærmen vises, skal du klikke på Næste knappen for at gå til næste trin.

Læs slutbrugerlicensaftalen igennem, klik på Jeg accepterer aftalen alternativknappen, og klik derefter på Næste knappen for at fortsætte.

Klik på Tilpasset installation og vælg derefter de funktioner, der skal installeres, samt installationsstedet. Vælg alle funktioner, der skal installeres, og vælg en destination (normalt C:-drevet). Klik på Næste knappen for at fortsætte.

På dette tidspunkt er produktet klar til installation. Klik på Installer knappen for at fortsætte.

Installationsprogrammet vil tage et par minutter at fuldføre installationen. I løbet af det tidsrum vises en statusskærm som vist nedenfor.

Når SSMA-installationen er fuldført, skal du klikke på Udfør knap.

SQL Server Migration Assistant for Access vises i Windows Start-menuen. Der vil også være en SQL Server Migration Assistant for Access-gruppe.

Nu hvor SSMA er installeret, kan MS Access-databasen migreres. Disse trin er beskrevet på næste side.

Migrering af en MS Access-database

Sørg for, at du har en sikkerhedskopi af din MS Access-database.

Find menupunktet Microsoft SQL Server Migration Assistant for Access i Windows Start-menuen, og klik på det for at starte SSMA.

SSMA-guiden vises og viser velkomstskærmen. Bemærk omridset af de 6 trin, der vil blive gennemført. På dette tidspunkt skal du have MS Access Employee-databasefilen tilgængelig samt legitimationsoplysningerne til en MS SQL Server-database. Klik på Næste knappen for at gå til det første trin i guiden.

Det første skridt er at oprette et nyt migrationsprojekt. Giv projektet et navn (Employee_Database_Migration_Project bruges til dette eksempel). Vælg en mappe at gemme projektet i. Vælg endelig SQL Server-versionen for SQL Server-måldatabasen. SQL Server 2016 vil blive brugt i dette eksempel. Når du er færdig, skal du klikke på Næste knap.

Det næste trin er at tilføje MS Access-databaser, der skal migreres. Formularen skal fremstå tom på dette tidspunkt. Klik på Tilføj databaser knap.

Naviger til mappen, der indeholder medarbejder.accdb-filen, og vælg denne fil. Klik på Åbn knap.

Medarbejder.accdb-filen skulle nu være på listen. Klik på Næste knappen for at fortsætte.

Nu hvor MS Access-databasen er blevet åbnet, er næste trin at vælge indholdet af databasen, der skal migreres til SQL Server. Generelt vil kun tabellerne blive migreret, og disse bør vælges som standard. Bemærk også, at alle indekser og primære nøgler, der er en del af hver tabel, også vil blive migreret. (Hvis ingen tabeller er angivet, skal du installere MS Access 2010 Runtime-softwaren og prøve igen).

I dette eksempel skal du sørge for, at alle databasetabellerne er valgt som vist nedenfor. Klik på Næste knappen for at fortsætte.

Det næste trin i guiden er at angive legitimationsoplysningerne for SQL Server-målforekomsten. Udfyld felterne i henhold til din SQL Server-konfiguration. Til dette eksempel bruges en SQL Server-instans på Gearhost.

Værtsnavnet vil være internetværtsnavnet eller IP-adressen på serveren. Hvis SQL Server er installeret på din lokale pc eller server, skal du bruge localhost som servernavn.

Serverporten er portnummeret for SQL Server-lytteren. Lad dette være som standard (medmindre du har ændret denne konfiguration på din SQL Server).

Databasen vil være navnet på databasen, der er bosiddende på SQL Server-instansen. For dette eksempel er der allerede oprettet en prøvedatabase ved navn testmssqldb1 på serveren.

Vælg metoden for godkendelse for din SQL Server-instans. Til dette eksempel vil SQL Server Authentication blive brugt. Et brugernavn og en adgangskode knyttet til SQL Server-instansen skal angives.

Udfyld de resterende legitimationsoplysninger, inklusive et brugernavn og adgangskode, og vælg de relevante muligheder, hvis forbindelsen skal krypteres eller ej.

Når alle legitimationsoplysningerne er indtastet, skal du klikke på Næste knap.

På dette tidspunkt vil migreringsguiden bede om at linke databaseapplikationen (formularer, rapporter osv.) til de resulterende SQL Server-databasetabeller. Det er præcis, hvad der kræves i dette tilfælde. Sørg for, at Linktabeller afkrydsningsfeltet er markeret, og klik på Næste knap.

Skærmbilledet Migrationsstatus vises, mens kildedataene analyseres og forberedes til indlæsning i SQL Server.

Efter konverteringen vises en dialogboks, der viser en liste over alle tabellerne og deres tilknyttede indekser og udløsere (hvis de findes). I dette eksempel vil alle tabellerne og deres tilknyttede objekter blive migreret til SQL Server. Klik på OK knappen for at lukke denne dialogboks.

Guiden vil fortsætte med at behandle tabeldataene og indlæse de konverterede objekter i databasen.

Under Link-konverterede tabeller trin, kan guiden bede om at indtaste SQL Server-legitimationsoplysningerne igen. Angiv disse legitimationsoplysninger igen, og klik på Forbind knap.

Migreringsguiden fortsætter. Når migreringen er fuldført, vises en oversigtsskærm. Hvis der var nogen fejl, skal du klikke på den tilknyttede Rapport knappen for at gennemgå dem. Når du er færdig, skal du klikke på Luk knap.

SSMA-hovedskærmen vises. Træk Filer ned menuen og vælg Gem projekt for at gemme det aktuelle projekt. Vælg Medarbejder database for at udtrække og gemme metadataene.

På dette tidspunkt er migreringsjobbet fuldført, og vi kan afslutte SSMA-programmet.

Det sidste afsnit af selvstudiet viser, hvordan man kører det nyligt migrerede MS Access-databaseprogram.

Kørsel af MS Access-databaseapplikationen

Åbn databasefilen employeedb.accdb i MS Access. Bemærk, at de originale tabeller nu er blevet omdøbt. For eksempel hedder den oprindelige medarbejdertabel nu SSMA$employee$local. Denne tabel er stadig gemt inde i employeedb.accdb-databasefilen.

Fire nye database-tabellinks er blevet oprettet. Alle de eksisterende formularer, forespørgsler og rapporter, der refererede til disse navne, vil nu i stedet referere til links til hver tabel i SQL Server-databasen. For at teste dette skal du åbne afdelingens dataindtastningsformular.

Du modtager muligvis en "Login" eller "Forbindelse mislykkedes" fejlmeddelelse som vist nedenfor:

Klik på knappen OK, og angiv derefter de relevante legitimationsoplysninger til SQL Server-forekomsten. Klik derefter på OK knap.

Fra et slutbrugerperspektiv er der ingen ændring i den måde, formularen ser ud eller fungerer på. Det eneste mindre problem, som brugere kan opleve, er en lille forsinkelse i åbningen af ​​en stor samling af data, da anmodningen skal sendes til en ekstern SQL Server-instans, som derefter skal pakke resultaterne og returnere dem til MS Access-databaseapplikationen.

Åbn nogle af de yderligere dataindtastningsformularer og sørg for, at de alle fungerer korrekt.

Når funktionaliteten af ​​den migrerede database er blevet bekræftet, kan de originale (nu omdøbte) tabeller slettes fra databasefilen employeedb.accdb. Efter dette trin kan employeedb.accdb-databasefilen distribueres til brugerne, så de kan begynde at arbejde med de data, der nu er gemt centralt i en SQL Server-instans.


  1. Londiste-replikering med PostgreSQL 9.0

  2. Hvordan tilføjer jeg identitetsegenskaben til en eksisterende kolonne i SQL Server

  3. Sådan vises en dato i britisk format i SQL Server (T-SQL)

  4. Hvordan finder man ud af, at brugeren er til stede i Sqlite-databasen ved hjælp af Android?