Migrieren einer SQL-Server-Datenbank zu Babelfish for Aurora PostgreSQL - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren einer SQL-Server-Datenbank zu Babelfish for Aurora PostgreSQL

Sie können Babelfish for Aurora PostgreSQL verwenden, um die Migration einer SQL-Server-Datenbank zu einem DB-Cluster von Amazon Aurora PostgreSQL zu erleichtern. Vor der Migration überprüfen Sie Verwenden von Babelfish mit einer einzigen Datenbank oder mehreren Datenbanken.

Übersicht über den Migrationsprozess

In der folgenden Zusammenfassung sind die Schritte aufgeführt, die erforderlich sind, damit Ihre SQL-Server-Anwendung mit Babelfish arbeiten kann. Informationen zu den Tools, die Sie für die Export- und Importprozesse verwenden können, sowie weitere Informationen finden Sie unter Importieren/Exportieren von Tools für die Migration von SQL Server zu Babelfish. Zum Laden der Daten empfehlen wir die Verwendung AWS DMS mit einem Aurora PostgreSQL-DB-Cluster als Zielendpunkt.

  1. Erstellen Sie einen neuen DB-Cluster von Aurora PostgreSQL und lassen Sie Babelfish aktiviert. Um zu erfahren wie dies geht, vgl. Erstellen eines DB-Clusters von Babelfish for Aurora PostgreSQL.

    Um die verschiedenen SQL-Artefakte zu importieren, die aus Ihrer SQL-Server-Datenbank exportiert werden, verbinden Sie sich mithilfe eines nativen SQL-Server-Tools wie sqlcmd mit dem Babelfish-Cluster. Weitere Informationen finden Sie unter Verbinden mit Ihrem DB-Cluster mithilfe eines SQL Server-Clients.

  2. Exportieren Sie die Datendefinitionssprache (DDL) in Ihrer SQL-Server-Datenbank, die Sie migrieren möchten. Die DDL ist SQL-Code, der Datenbankobjekte beschreibt, die Benutzerdaten (wie Tabellen, Indizes und Ansichten) und vom Benutzer geschriebenen Datenbankcode (wie gespeicherte Prozeduren, benutzerdefinierte Funktionen und Trigger) enthalten.

    Weitere Informationen finden Sie unter Migrieren zu Babelfish mit SQL Server Management Studio (SSMS).

  3. Führen Sie ein Bewertungstool aus, um den Umfang aller Änderungen zu bewerten, die Sie möglicherweise vornehmen müssen, damit Babelfish die auf SQL Server ausgeführte Anwendung effektiv unterstützen kann. Weitere Informationen finden Sie unter Auswertung und Handhabung von Unterschieden zwischen SQL Server und Babelfish.

  4. Überprüfen Sie die Einschränkungen des AWS DMS Zielendpunkts und aktualisieren Sie das DDL-Skript nach Bedarf. Weitere Informationen finden Sie unter Einschränkungen bei der Verwendung eines PostgreSQL-Zielendpunkts mit Babelfish-Tabellen in Verwenden von Aurora PostgreSQL als Ziel.

  5. Führen Sie die DDL auf Ihrem neuen Babelfish-DB-Cluster innerhalb Ihrer angegebenen T-SQL-Datenbank aus, um nur die Schemas, benutzerdefinierten Datentypen und Tabellen mit ihren Primärschlüsseleinschränkungen zu erstellen.

  6. Wird verwendet AWS DMS , um Ihre Daten von SQL Server zu Babelfish-Tabellen zu migrieren. Verwenden Sie für die kontinuierliche Replikation mit Change Data Capture bei SQL Server oder SQL Replication Aurora PostgreSQL anstelle von Babelfish als Endpunkt. Informationen dazu finden Sie im Artikel Verwendung von Babelfish für Aurora PostgreSQL als Ziel für AWS Database Migration Service.

  7. Wenn das Laden der Daten abgeschlossen ist, erstellen Sie alle verbleibenden T-SQL-Objekte, die die Anwendung auf Ihrem Babelfish-Cluster unterstützen.

  8. Konfigurieren Sie Ihre Client-Anwendung neu, um eine Verbindung mit dem Babelfish-Endpunkt statt mit der SQL-Server-Datenbank herzustellen. Weitere Informationen finden Sie unter Verbinden mit einem Babelfish-DB-Cluster.

  9. Ändern Sie Ihre Anwendung nach Bedarf und testen Sie sie erneut. Weitere Informationen finden Sie unter Unterschiede zwischen Babelfish für Aurora PostgreSQL und SQL Server.

Sie müssen nach wie vor Ihre clientseitigen SQL-Abfragen bewerten. Die aus Ihrer SQL-Server-Instance generierten Schemas konvertieren nur den serverseitigen SQL-Code. Wir empfehlen, die folgenden Schritte auszuführen:

  • Erfassen Sie clientseitige Abfragen mit dem SQL Server Profiler anhand der vordefinierten Vorlage TSQL_Replay. Diese Vorlage erfasst Informationen zu T-SQL-Anweisungen, die Sie dann für iterative Optimierung und Tests wiedergeben können. Sie können den Profiler über das Menü Tools in SQL Server Management Studio starten. Klicken Sie auf SQL Server Profiler, um den Profiler zu öffnen und die Vorlage TSQL_Replay auszuwählen.

    Zur Verwendung für Ihre Babelfish-Migration starten Sie eine Nachverfolgung und führen Sie Ihre Anwendung dann mit Ihren Funktionstests aus. Der Profiler erfasst die T-SQL-Anweisungen. Stoppen Sie nach dem Abschluss des Tests die Nachverfolgung. Speichern Sie das Ergebnis mit Ihren clientseitigen Abfragen in einer XML-Datei (File (Datei) > Save as (Speichern unter) > Trace XML File for Replay (XML-Datei für Wiederholung nachverfolgen)).

    Weitere Informationen finden Sie unter SQL Server Profiler in der Microsoft-Dokumentation. Weitere Informationen zur TSQL_Replay-Vorlage finden Sie unter Vorlagen für SQL Server Profiler.

  • Für Anwendungen mit komplexen clientseitigen SQL-Abfragen empfehlen wir Ihnen, diese mit Babelfish Compass auf Babelfish-Kompatibilität zu analysieren. Wenn die Analyse ergibt, dass die clientseitigen SQL-Anweisungen nicht unterstützte SQL-Funktionen enthalten, überprüfen Sie die SQL-Aspekte in der Clientanwendung und nehmen Sie ggf. Änderungen vor.

  • Sie können die SQL-Abfragen auch als erweiterte Ereignisse (XEL-Format) erfassen. Verwenden Sie dazu den SSMS XEvent Profiler. Nachdem Sie die XEL-Datei generiert haben, extrahieren Sie die SQL-Anweisungen in XML-Dateien, die Compass dann verarbeiten kann. Weitere Informationen finden Sie unter Verwenden des SSMS XEvent Profilers in der Microsoft-Dokumentation.

Wenn Sie mit allen Tests, Analysen und Änderungen an Ihrer migrierten Anwendung zufrieden sind, können Sie Ihre Babelfish-Datenbank für die Produktion verwenden. Beenden Sie dazu die ursprüngliche Datenbank und leiten Sie Live-Clientanwendungen auf den Babelfish-TDS-Port um.

Anmerkung

AWS DMS unterstützt jetzt das Replizieren von Daten aus Babelfish. Weitere Informationen finden Sie unter Unterstützt AWS DMS jetzt Babelfish for Aurora PostgreSQL als Quelle.

Auswertung und Handhabung von Unterschieden zwischen SQL Server und Babelfish

Für beste Ergebnisse empfehlen wir Ihnen, den generierten DDL/DML und den Client-Abfragecode auszuwerten, bevor Sie Ihre SQL-Server-Datenbankanwendung tatsächlich zu Babelfish migrieren. Abhängig von der Babelfish-Version und den spezifischen Funktionen von SQL Server, die Ihre Anwendung implementiert, müssen Sie möglicherweise Ihre Anwendung umgestalten oder Alternativen für Funktionen verwenden, die in Babelfish nicht vollständig unterstützt werden.

  • Verwenden Sie zur Bewertung Ihres SQL-Server-Anwendungscodes Babelfish Compass für die generierte DDL, um festzustellen, wie viel T-SQL-Code von Babelfish unterstützt wird. Identifizieren Sie T-SQL-Code, für den vor der Ausführung in Babelfish möglicherweise Änderungen erforderlich sind. Weitere Informationen zu diesem Tool finden Sie unter Babelfish Compass Tool auf. GitHub

    Anmerkung

    Babelfish Compass ist ein Open-Source-Tool. Melde alle Probleme mit Babelfish Compass über den Support GitHub statt über den AWS Support.

Sie können den Generate Script Wizard mit SQL Server Management Studio (SSMS) verwenden, um die SQL-Datei zu generieren, die von Babelfish Compass oder CLI bewertet wird. AWS Schema Conversion Tool Wir empfehlen die folgenden Schritte, um die Bewertung zu optimieren.

  1. Wählen Sie auf der Seite Choose Objects (Objekte auswählen) die Option Script entire database and all database objects (Gesamte Datenbank und alle Datenbankobjekte in das Skript aufnehmen) aus.

    Verwenden Sie den SSMS-Assistenten zum Generieren von Skripts zur Auswahl von Objekten.
  2. Wählen Sie für Set Scripting Options (Scripting-Optionen festlegen) die Option Save as script file (Als Skriptdatei speichern) und Single script file (Einzelne Skriptdatei) aus.

    Verwenden Sie den SSMS-Assistenten zum Generieren von Skripts, um die Scripting-Optionen festzulegen.
  3. Wählen Sie Advanced (Erweitert) aus, um die standardmäßigen Scripting-Optionen zu ändern und Funktionen zu identifizieren, die für eine vollständige Bewertung normalerweise auf „False“ (Falsch) festgelegt sind:

    • Skriptänderungsverfolgung auf „True“ (Wahr)

    • Skriptvolltextindizes auf „True“ (Wahr)

    • Skriptauslöser auf „True“ (Wahr)

    • Skriptanmeldungen auf „True“ (Wahr)

    • Skripteigentümer auf „True“ (Wahr)

    • Skriptberechtigungen auf Objektebene auf „True“ (Wahr)

    • Skriptsortierungen auf „True“ (Wahr)

    Verwenden Sie den SSMS-Assistenten zum Generieren von Skripts, um die erweiterten Scripting-Optionen festzulegen.
  4. Führen Sie die restlichen Schritte im Assistenten aus, um die Datei zu generieren.

Importieren/Exportieren von Tools für die Migration von SQL Server zu Babelfish

Wir empfehlen die Verwendung AWS DMS als primäres Tool für die Migration von SQL Server zu Babelfish. Babelfish unterstützt jedoch verschiedene andere Möglichkeiten, Daten mithilfe von SQL-Server-Tools zu migrieren, darunter die folgenden.

  • SQL Server Integration Services (SSIS) für alle Versionen von Babelfish. Weitere Informationen finden Sie unter Migration von SQL Server zu Aurora PostgreSQL mit SSIS und Babelfish.

  • Verwenden Sie den Import/Export-Assistenten von SSMS für Babelfish-Versionen 2.1.0 und höher. Dieses Tool ist nicht nur über das SSMS, sondern auch als eigenständiges Tool verfügbar. Weitere Informationen finden Sie unter Willkommen beim SQL-Server-Assistenten für Import und Export in der Microsoft-Dokumentation.

  • Mit dem Microsoft-Dienstprogramm zum Kopieren von Massendaten (bcp) können Sie Daten einer Instance von Microsoft SQL Server in eine Datendatei im von Ihnen angegebenen Format kopieren. Weitere Informationen finden Sie unter bcp-Hilfsprogramm in der Microsoft-Dokumentation. Babelfish unterstützt jetzt die Datenmigration mit dem BCP-Client und das bcp-Dienstprogramm unterstützt jetzt -E-Flags (für Identitätsspalten) und -b-Flags (für stapelweise Einfügungen). Bestimmte bcp-Optionen werden nicht unterstützt, einschließlich -C, -T, -G, -K, -R, -V und -h.

Migrieren zu Babelfish mit SQL Server Management Studio (SSMS)

Wir empfehlen, separate Dateien für jeden der spezifischen Objekttypen zu generieren. Sie können den Assistenten zum Generieren von Skripts in SSMS zunächst für jeden Satz von DDL-Anweisungen verwenden und dann die Objekte als Gruppe ändern, um alle während der Bewertung festgestellten Probleme zu beheben.

Führen Sie diese Schritte aus, um die Daten mithilfe von AWS DMS oder anderen Datenmigrationsmethoden zu migrieren. Führen Sie zuerst diese Methoden zum Erstellen von Skripts aus, um die Daten schneller und besser in die Babelfish-Tabellen in Aurora PostgreSQL zu laden.

  1. Führen Sie CREATE SCHEMA-Anweisungen aus.

  2. Führen Sie CREATE TYPE-Anweisungen aus, um benutzerdefinierte Datentypen zu erstellen.

  3. Führen Sie grundlegende CREATE TABLE-Anweisungen mit den Primärschlüsseln oder eindeutigen Einschränkungen aus.

Führen Sie das Laden der Daten mit dem empfohlenen Import-/Export-Tool durch. Führen Sie die geänderten Skripts für die folgenden Schritte aus, um die verbleibenden Datenbankobjekte hinzuzufügen. Sie benötigen die Create-Table-Anweisungen, um diese Skripts für die Einschränkungen, Auslöser und Indizes auszuführen. Nachdem die Skripts generiert wurden, löschen Sie die Create-Table-Anweisungen.

  1. Führen Sie ALTER TABLE-Anweisungen für die Prüfbeschränkungen, Fremdschlüsseleinschränkungen und Standardeinschränkungen aus.

  2. Führen Sie CREATE TRIGGER-Anweisungen aus.

  3. Führen Sie CREATE INDEX-Anweisungen aus.

  4. Führen Sie CREATE VIEW-Anweisungen aus.

  5. Führen Sie CREATE STORED PROCEDURE-Anweisungen aus.

So generieren Sie Skripts für jeden Objekttyp

Führen Sie die folgenden Schritte aus, um die grundlegenden Create-Table-Anweisungen mithilfe des Assistenten zum Erstellen von Skripts in SSMS zu erstellen. Führen Sie die gleichen Schritte aus, um Skripts für die verschiedenen Objekttypen zu generieren.

  1. Stellen Sie eine Verbindung zu Ihrer vorhandenen SQL-Server-Instance her.

  2. Öffnen Sie das Kontextmenü (rechte Maustaste) für einen Datenbanknamen.

  3. Wählen Sie Tasks (Aufgaben) und dann Generate Scripts... (Skripts generieren).

  4. Klicken Sie im Bereich Choose Objects (Objekte auswählen) auf Select specific database objects (Bestimmte Datenbankobjekte auswählen). Klicken Sie auf Tables (Tabellen) und wählen Sie alle Tabellen aus. Wählen Sie Next (Weiter), um fortzufahren.

    Verwenden Sie den SSMS-Assistenten Generate Scripts (Skripts generieren) zur Auswahl von Objekten und Tabellen.
  5. Wählen Sie auf der Seite Set Scripting Options (Scripting-Optionen festlegen) die Option Advanced (Erweitert) aus, um die Einstellungen Options (Optionen) zu öffnen. Um die grundlegenden Create-Table-Anweisungen zu generieren, ändern Sie die folgenden Standardwerte:

    • „Script Defaults“ (Skriptstandardwerte) auf „False“ (Falsch).

    • „Script Extended Properties“ (Erweiterte Skripteigenschaften) auf „False“ (Falsch). Babelfish unterstützt keine erweiterten Eigenschaften.

    • „Script Check Constraints“ (Skriptprüfeinschränkungen) auf „False“ (Falsch). „Script Foreign Keys“ (Skriptfremdschlüssel) auf „False“ (Falsch).

    Verwenden Sie den SSMS-Assistenten zum Generieren von Skripts, um die erweiterten Optionen festzulegen.
  6. Wählen Sie OK aus.

  7. Wählen Sie auf der Seite Set Scripting Options (Scripting-Optionen festlegen) die Option Save as script file (Als Skriptdatei speichern) und dann die Option Single script file (Einzelne Skriptdatei) aus. Geben Sie unter File name (Dateiname) einen Namen ein.

    Verwenden Sie den SSMS-Assistenten zum Generieren von Skripts, um die Standardwerte des Skripts festzulegen.
  8. Wählen Sie Next (Weiter) aus, um die Seite Summary wizard (Übersichtsassistent) aufzurufen.

  9. Wählen Sie Next (Weiter) aus, um die Skriptgenerierung zu starten.

    Sie können mit dem Generieren von Skripten für die anderen Objekttypen im Assistenten fortfahren. Anstatt nach dem Speichern der Datei Finish (Beenden) auszuwählen, klicken Sie dreimal auf die Schaltfläche Previous (Zurück), um zur Seite Choose Objects (Objekte auswählen) zurückzukehren. Wiederholen Sie dann die Schritte im Assistenten, um Skripten für die anderen Objekttypen zu generieren.