Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Migrieren einer Microsoft Access-Datenbank zu SQL Server

Einführung

Microsoft Access ist ein beliebtes Desktop-Datenbankverwaltungssystem, das Anwendungsentwicklungstools (Formulare, Berichte, Abfragen, VBA-Makros) mit einem relationalen DBMS integriert. MS Access ist ideal für einzelne Benutzer oder für kleine Arbeitsgruppen, in denen einige Benutzer gleichzeitig an den Daten arbeiten, indem sie eine MS Access-Datenbankdatei über ein lokales Netzwerk freigeben.

Sobald die Anzahl der gleichzeitigen Benutzer jedoch über eine Handvoll anwächst, beginnt MS Access, auf Probleme mit der gemeinsamen Nutzung der Daten zu stoßen. Eine Lösung für dieses „Scale-Up“-Problem besteht darin, die MS Access-Datenbank aufzuteilen und die Daten in einem serverbasierten DBMS wie Microsoft SQL Server zu hosten.

Microsoft bietet ein praktisches Tool namens „Microsoft SQL Server Migration Assistant for MS Access“ (SSMA) an, um das Verschieben der Datenbanktabellen von einer MS Access-Datenbank nach SQL Server zu unterstützen. Bevor Sie sich mit den eigentlichen Schritten dieses Prozesses befassen, ist es hilfreich, die Architektur eines MS Access-Datenbanksystems zu verstehen. Diese Architektur wird ab der nächsten Seite beschrieben.

Voraussetzungen

Bevor Sie mit diesem Tutorial fortfahren, vergewissern Sie sich, dass die folgende Software installiert ist.

Dieses Tutorial wurde mit Microsoft Access 2013 (von 64-Bit MS Office) geschrieben, das auf einem Windows 7 64-Bit-Betriebssystem ausgeführt wird. MS Access 2010 und 2016 funktionieren möglicherweise auch, wurden jedoch nicht getestet. Achten Sie darauf, MS Office zu überprüfen, da die 32-Bit-Version von MS Access nicht die richtige Unterstützung bietet, damit SSMA funktioniert.

Möglicherweise müssen Sie auch die MS Access 2010 Runtime-Software installieren. Diese Software wurde ursprünglich entwickelt, um MS Access-Datenbankdateien zu lesen, ohne dass eine vollständige Version von MS Access installiert werden muss. Der QL Server-Migrationsassistent verwendet die Data Access Objects (DAO)-Teile in der MS Access 2010 Runtime, um MS Access-Dateien zu öffnen.

Eine MS Access-Beispieldatenbankdatei wird bereitgestellt (Links zu dieser Datei finden Sie auf den nächsten Seiten).

Das Zieldatenbankverwaltungssystem ist Microsoft SQL Server. Für dieses Tutorial sind Anmeldeinformationen (Benutzername, Kennwort usw.) für eine SQL Server-Instanz erforderlich. Sie können MS SQL Server auf Ihrem eigenen PC oder Server installieren, einen vorhandenen Server zu Hause oder am Arbeitsplatz verwenden oder einen Cloud-basierten Dienst nutzen, um SQL Server für Sie zu hosten. Ein Tutorial zum Einrichten einer SQL Server-Instanz auf GearHost finden Sie hier:/getting-started-with-gearhost-for-sql-server-database-development/

Beachten Sie, dass GearHost ab 2021 keine Free-Tier-SQL Server-Instanz mehr hat. Sie können versuchen, ein Studentenkonto auf Microsoft Azure zu erhalten und die Azure SQL-Datenbank zu verwenden.

Sie sollten auch das Microsoft SQL Server Management Studio zur Verfügung haben, um SQL Server direkt zu erkunden und damit zu arbeiten. Verwenden Sie das SQL Server Management Studio, um eine Verbindung zu Ihrer SQL Server-Instanz herzustellen und eine leere Datenbank zu erstellen.

Für dieses Tutorial wird eine von GearHost gehostete SQL Server-Instanz verwendet. Eine Beispieldatenbank mit dem Namen testmssqldb1 wurde erstellt, wie unten im Objekt-Explorer von SQL Server Management Studio gezeigt.

Stellen Sie schließlich sicher, dass Sie eine Sicherungskopie aller MS Access-Datenbankdateien erstellen, bevor Sie sie auf SQL Server migrieren.

Der nächste Abschnitt stellt die Architektur einer Microsoft Access-Datenbank vor.

Microsoft Access-Datenbankarchitektur

Die meisten Informationssysteme, die eine Datenbank zum Speichern von Daten verwenden, können durch vier Hauptkomponenten beschrieben werden:

  1. Benutzeroberfläche – Dies sind die Formulare, Berichte und Abfragen, mit denen die Endbenutzer des Systems interagieren.
  2. Geschäftslogik – Dies ist ein Programmiercode, der verschiedene Geschäftsregeln implementiert, nach denen die Organisation arbeitet. Beispielsweise kann es eine Geschäftsregel geben, dass keinem Mitarbeiter mehr als 30 Stunden pro Woche für ein einzelnes Projekt zugewiesen werden dürfen. Diese Regel würde im Programmiercode implementiert werden.
  3. Datenbankverwaltungssystem – Dies ist die Software, mit der Daten in der Datenbank verwaltet werden. Es kann auch über Funktionen wie Parallelitätssteuerung verfügen, damit mehrere Benutzer sicher mit den Daten arbeiten können. Einige Beispiele für DBMS sind MS Access, MS SQL Server, Oracle, MySQL und Postgres.
  4. Datenbank – Hier werden die eigentlichen Daten gespeichert. Typischerweise werden Daten in einem Satz von Datenbanktabellen organisiert. Jede Tabelle hat Spalten und Datensätze.

Eine Datenbanksystemarchitektur beschreibt, wie jede dieser vier Komponenten angeordnet ist. Häufig wird der Begriff „Frontend“ verwendet, um die Komponenten der Benutzeroberfläche und der Geschäftslogik zu beschreiben. Das „Backend“ besteht aus dem DBMS und der Datenbank.

Als Desktop-DBMS speichert MS Access alle Komponenten der Datenbanksystemanwendung in einer einzigen Datei. Die DBMS-Software läuft auf dem Desktop-Computer. Dateneingabeformulare, Berichte und Abfragen interagieren mit den Datenbanktabellen, die in derselben MS Access-Datenbankdatei (ACCDB-Datei) gespeichert sind, wie in der Abbildung unten gezeigt.

Um MS Access-Daten über ein lokales Netzwerk zu teilen, können wir die Datenbankdatei in zwei „teilen“. Eine Datei enthält die Formulare, Berichte, Abfragen und andere Teile der Datenbankanwendung, während die zweite Datenbankdatei nur die Datenbanktabellen und ihre Daten enthält. Die Anwendungskomponenten (Formulare, Berichte usw.) verwenden externe Links zur zweiten Datenbankdatei, um Daten abzurufen und zu aktualisieren. Dies ist in der Abbildung unten dargestellt.

Wenn die Anzahl der Benutzer zunimmt, wird diese Methode der gemeinsamen Nutzung der Daten einschränkend. In diesem Fall können wir die Datenbanktabellen auf Microsoft SQL Server migrieren. Auch hier werden externe Links verwendet, um die Anwendungskomponenten (Formulare, Berichte usw.) mit den Datenbanktabellen zu verbinden, wie in der Abbildung unten gezeigt.

Dieser Ansatz des „Aufteilens“ oder „Vergrößerns“ von SQL Server steht im Mittelpunkt dieses Tutorials.

Der nächste Abschnitt stellt eine MS Access-Beispieldatenbank vor, die verwendet wird, um die Datenbankmigration zu demonstrieren.

Die beispielhafte Mitarbeiterdatenbank

Dieses Tutorial verwendet eine einfache Mitarbeiterdatenbank, die über diesen Link heruntergeladen werden kann. In dieser Datenbank gibt es 4 Haupttabellen:Department, Employee, Project und Project_Assignment.

Die Beziehungen zwischen Tabellen werden unten gezeigt:

Es gibt 5 Dateneingabeformulare, eine Abfrage und einen Bericht.

Nehmen Sie sich ein paar Minuten Zeit, um diese Datenbank zu erkunden, bevor Sie mit dem Tutorial fortfahren. Stellen Sie sicher, dass Sie die Datenbankdatei schließen, wenn Sie mit dem Durchsuchen fertig sind. Erstellen Sie außerdem eine Sicherungskopie der Datei, falls Sie dieses Tutorial in Zukunft wiederholen möchten.

Im nächsten Abschnitt dieses Lernprogramms wird der Microsoft SQL Server-Migrationsassistent für MS Access-Dienstprogramme heruntergeladen und installiert.

Herunterladen und Installieren des Microsoft SQL Server-Migrationsassistenten für MS Access

Der Microsoft SQL Server Migration Assistant für MS Access kann von der folgenden Microsoft-Website heruntergeladen werden:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Klicken Sie auf Herunterladen Schaltfläche und speichern Sie dann die neue Datei. Der Dateiname sollte etwa SSMA for Access.7.3.0.msi lauten, obwohl in Zukunft möglicherweise eine neuere Version verfügbar ist. Doppelklicken Sie auf die Datei SSMA for Access.7.3.0.msi, um das Installationsprogramm zu starten.

Wenn der Willkommensbildschirm erscheint, klicken Sie auf Weiter Taste, um zum nächsten Schritt zu gelangen.

Lesen Sie die Endbenutzer-Lizenzvereinbarung durch und klicken Sie auf Ich akzeptiere die Vereinbarung Optionsfeld und klicken Sie dann auf Weiter um fortzufahren.

Klicken Sie auf Benutzerdefinierte Installation und wählen Sie dann die zu installierenden Funktionen sowie den Installationsort aus. Wählen Sie alle zu installierenden Funktionen und wählen Sie ein Ziel (normalerweise das Laufwerk C:). Klicken Sie auf Weiter um fortzufahren.

An diesem Punkt ist das Produkt bereit zur Installation. Klicken Sie auf Installieren um fortzufahren.

Das Installationsprogramm benötigt einige Minuten, um die Installation abzuschließen. Während dieser Zeit erscheint ein Statusbildschirm wie unten gezeigt.

Klicken Sie nach Abschluss der SSMA-Installation auf Fertig stellen Schaltfläche.

Der SQL Server-Migrationsassistent für Access wird im Windows-Startmenü angezeigt. Es wird auch eine SQL Server Migration Assistant for Access-Gruppe geben.

Nachdem SSMA installiert ist, kann die MS Access-Datenbank migriert werden. Diese Schritte werden auf der nächsten Seite beschrieben.

Migration einer MS Access-Datenbank

Stellen Sie sicher, dass Sie eine Sicherungskopie Ihrer MS Access-Datenbank haben.

Suchen Sie das Microsoft SQL Server Migration Assistant for Access-Menüelement im Windows-Startmenü und klicken Sie darauf, um SSMA zu starten.

Der SSMA-Assistent wird mit dem Begrüßungsbildschirm angezeigt. Beachten Sie die Gliederung der 6 Schritte, die abgeschlossen werden. An diesem Punkt müssen Sie die MS Access-Mitarbeiterdatenbankdatei sowie die Anmeldeinformationen für eine MS SQL Server-Datenbank zur Verfügung haben. Klicken Sie auf Weiter Schaltfläche, um zum ersten Schritt im Assistenten zu gelangen.

Der erste Schritt besteht darin, ein neues Migrationsprojekt zu erstellen. Geben Sie dem Projekt einen Namen (für dieses Beispiel wird Employee_Database_Migration_Project verwendet). Wählen Sie einen Ordner aus, in dem das Projekt gespeichert werden soll. Wählen Sie schließlich die SQL Server-Version für die SQL Server-Zieldatenbank aus. In diesem Beispiel wird SQL Server 2016 verwendet. Wenn Sie fertig sind, klicken Sie auf Weiter Schaltfläche.

Im nächsten Schritt fügen Sie die zu migrierenden MS Access-Datenbanken hinzu. Das Formular sollte an dieser Stelle leer erscheinen. Klicken Sie auf Datenbanken hinzufügen Schaltfläche.

Navigieren Sie zu dem Ordner, der die Datei employee.accdb enthält, und wählen Sie diese Datei aus. Klicken Sie auf Öffnen Schaltfläche.

Die Datei employee.accdb sollte nun aufgelistet werden. Klicken Sie auf Weiter um fortzufahren.

Nachdem die MS Access-Datenbank geöffnet wurde, besteht der nächste Schritt darin, den Inhalt der Datenbank auszuwählen, die auf den SQL-Server migriert werden soll. Im Allgemeinen werden nur die Tabellen migriert und diese sollten standardmäßig ausgewählt werden. Beachten Sie auch, dass alle Indizes und Primärschlüssel, die Teil jeder Tabelle sind, ebenfalls migriert werden. (Wenn keine Tabellen aufgeführt sind, installieren Sie die MS Access 2010 Runtime-Software und versuchen Sie es erneut).

Stellen Sie für dieses Beispiel sicher, dass alle Datenbanktabellen wie unten gezeigt ausgewählt sind. Klicken Sie auf Weiter um fortzufahren.

Der nächste Schritt im Assistenten besteht darin, die Anmeldeinformationen für die SQL Server-Zielinstanz anzugeben. Füllen Sie die Felder gemäß Ihrer SQL Server-Konfiguration aus. Für dieses Beispiel wird eine SQL Server-Instanz auf Gearhost verwendet.

Der Hostname wird der Internet-Hostname oder die IP-Adresse des Servers sein. Wenn SQL Server auf Ihrem lokalen PC oder Server installiert ist, verwenden Sie localhost als Servernamen.

Der Server-Port ist die Portnummer für den SQL Server-Listener. Belassen Sie dies auf der Standardeinstellung (es sei denn, Sie haben diese Konfiguration auf Ihrem SQL Server geändert).

Die Datenbank wird der Name der Datenbank sein, die sich auf der SQL Server-Instanz befindet. Für dieses Beispiel wurde bereits eine Beispieldatenbank namens testmssqldb1 auf dem Server erstellt.

Wählen Sie die Methode der Authentifizierung aus für Ihre SQL Server-Instanz. Für dieses Beispiel wird die SQL Server-Authentifizierung verwendet. Ein Benutzername und ein Kennwort, die der SQL Server-Instanz zugeordnet sind, müssen angegeben werden.

Geben Sie die restlichen Anmeldeinformationen ein, einschließlich Benutzername und Passwort, und wählen Sie die entsprechenden Optionen aus, wenn die Verbindung verschlüsselt werden soll oder nicht.

Sobald alle Anmeldedaten eingegeben sind, klicken Sie auf Weiter Schaltfläche.

An diesem Punkt fordert der Migrationsassistent Sie auf, die Datenbankanwendung (Formulare, Berichte usw.) mit den resultierenden SQL Server-Datenbanktabellen zu verknüpfen. Genau das ist in diesem Fall erforderlich. Stellen Sie sicher, dass die Tabellen verknüpfen Kontrollkästchen aktiviert ist und klicken Sie auf Weiter Schaltfläche.

Der Bildschirm „Migrationsstatus“ wird angezeigt, während die Quelldaten analysiert und für das Laden in SQL Server vorbereitet werden.

Nach der Konvertierung erscheint ein Dialogfeld, das eine Liste aller Tabellen und ihrer zugehörigen Indizes und Trigger (falls vorhanden) anzeigt. In diesem Beispiel werden alle Tabellen und ihre zugeordneten Objekte zu SQL Server migriert. Klicken Sie auf OK Schaltfläche, um dieses Dialogfeld zu schließen.

Der Assistent verarbeitet die Tabellendaten weiter und lädt die konvertierten Objekte in die Datenbank.

Während der Konvertierten Tabellen verknüpfen Schritt kann der Assistent Sie auffordern, die SQL Server-Anmeldeinformationen erneut einzugeben. Geben Sie diese Anmeldeinformationen erneut ein und klicken Sie auf Verbinden Schaltfläche.

Der Migrationsassistent wird fortgesetzt. Wenn die Migration abgeschlossen ist, wird ein Zusammenfassungsbildschirm angezeigt. Wenn Fehler aufgetreten sind, klicken Sie auf den zugehörigen Bericht Schaltfläche, um sie zu überprüfen. Wenn Sie fertig sind, klicken Sie auf Schließen Schaltfläche.

Der SSMA-Hauptbildschirm wird angezeigt. Ziehen Sie die Datei herunter Menü und wählen Sie Projekt speichern um das aktuelle Projekt zu speichern. Wählen Sie den Mitarbeiter aus Datenbank zum Extrahieren und Speichern der Metadaten.

An diesem Punkt ist der Migrationsjob abgeschlossen und wir können das SSMA-Programm beenden.

Der letzte Abschnitt des Tutorials zeigt, wie die neu migrierte MS Access-Datenbankanwendung ausgeführt wird.

Ausführen der MS Access-Datenbankanwendung

Öffnen Sie die Datenbankdatei employeedb.accdb in MS Access. Beachten Sie, dass die ursprünglichen Tabellen jetzt umbenannt wurden. Beispielsweise heißt die ursprüngliche Mitarbeitertabelle jetzt SSMA$employee$local. Diese Tabelle wird immer noch in der Datenbankdatei employeedb.accdb gespeichert.

Vier neue Datenbanktabellen-Links wurde erstellt. Alle vorhandenen Formulare, Abfragen und Berichte, die auf diese Namen verwiesen haben, verweisen jetzt stattdessen auf die Links zu jeder Tabelle in der SQL Server-Datenbank. Um dies zu testen, öffnen Sie das Eingabeformular für Abteilungsdaten.

Möglicherweise erhalten Sie die unten gezeigte Fehlermeldung „Anmeldung“ oder „Verbindung fehlgeschlagen“:

Klicken Sie auf die Schaltfläche OK und geben Sie dann die entsprechenden Anmeldeinformationen für die SQL Server-Instanz ein. Klicken Sie dann auf OK Schaltfläche.

Aus der Sicht des Endbenutzers gibt es keine Änderung in der Art und Weise, wie das Formular aussieht oder funktioniert. Das einzige kleinere Problem, auf das Benutzer möglicherweise stoßen, ist eine leichte Verzögerung beim Öffnen einer großen Datensammlung, da die Anfrage an eine entfernte SQL Server-Instanz gesendet werden muss, die dann die Ergebnisse packen und an die MS Access-Datenbankanwendung zurücksenden muss.

Öffnen Sie einige der zusätzlichen Dateneingabeformulare und stellen Sie sicher, dass alle ordnungsgemäß funktionieren.

Nachdem die Funktionalität der migrierten Datenbank bestätigt wurde, können die ursprünglichen (jetzt umbenannten) Tabellen aus der Datenbankdatei employeedb.accdb gelöscht werden. Nach diesem Schritt kann die Datenbankdatei employeedb.accdb an die Benutzer verteilt werden, damit sie mit den Daten arbeiten können, die jetzt an einem zentralen Ort in einer SQL Server-Instanz gespeichert sind.