Was sind die bewährten Methoden für die Migration einer Oracle-Datenbank zu einer RDS-Zieldatenbank für PostgreSQL mithilfe von AWS DMS?

Letzte Aktualisierung: 31.08.2022

Ich möchte Daten aus einer Oracle-Quelldatenbank zu einer Amazon Relation Database Service (Amazon RDS) für PostgreSQL-Zieldatenbank migrieren. Welche bewährten Methoden kann ich bei der Migration von Daten von Oracle zu PostgreSQL mit AWS Database Migration Services (AWS DMS) befolgen?

Auflösung

Bewährte Methoden für die Migration von Oracle- zu PostgreSQL-Datenbanken

  • Konfigurieren Sie Ihre Oracle-Quelldatenbank mit den erforderlichen Voraussetzungen, bevor Sie mit der Migration Ihrer Daten beginnen.
  • Testen Sie die Migration, indem Sie dieselben Produktionsdaten in einer anderen QA/DEV-Datenbankumgebung verwenden. Basierend auf den Ergebnissen können Sie dann mit der Produktionsmigration fortfahren. Stellen Sie sicher, dass Sie dieselbe AWS-DMS-Konfiguration sowohl für die Test- als auch für die Produktionsmigrationen verwenden.
  • Stellen Sie Ihre AWS-DMS-Instances mit ausreichend CPU, Arbeitsspeicher, Speicher und IOPS bereit, um Ressourcenkonflikte während der Migration zu vermeiden. Weitere Informationen finden Sie unter Auswählen der richtigen AWS-DMS-Replikations-Instance für Ihre Migration und Auswählen der besten Größe für eine Replikationsinstanz. Weitere Informationen zu den mit dem Upgrade Ihrer Instance verbundenen Kosten finden Sie unter Preise für den AWS Database Migration Service. Stellen Sie die Amazon-RDS-Ziel-Instance mit derselben Überlegung bereit.
  • Wenn Ihre Quelldatenbank viele Tabellen mit hoher Arbeitsbelastung enthält, teilen Sie die Tabellen auf mehrere AWS-DMS-Aufgaben auf. Teilen Sie die Tabellen basierend auf ihrer Größe in der Quelle, dem Muster des Anwendungsdatenverkehrs und dem Vorhandensein von LOB-Spalten auf. Wenn eine Tabelle viele LOB-Spalten mit hohem Schreibdatenverkehr auf der Quelle enthält, erstellen Sie eine separate Aufgabe für diese Tabelle.
  • Verwenden Sie parallele Volllast, um die Migrationszeit bei hohen Workloads zu reduzieren. Weitere Informationen finden Sie unter Verwenden des parallelen Ladens für ausgewählte Tabellen, Ansichten und Sammlungen.
  • Deaktivieren Sie Backups und datenbankspezifische Protokolle wie Bin, Allgemein, Audit und PG-Abfrageprotokolle in der Zieldatenbank während der Migration. Schalten Sie sie wieder ein, um Probleme zu beheben.
  • Deaktivieren Sie während der Migration Trigger, Verfahren, andere Cron-Jobs und Ereignisplaner in der Zieldatenbank.
  • Vermeiden Sie die Verwendung von Multi-AZ-Konzepten für Ziel-RDS-Datenbanken während der Migration.
  • Vermeiden Sie es, bei der Migration anderen externen Clientdatenverkehr auf das Ziel anzuwenden.
  • Fügen Sie der Zieldatenbank alle sekundären Indizes hinzu, bevor Sie die Change-Data-Capture-Phase (CDC) der Replikation starten.
  • Deaktivieren Sie Fremdschlüssel auf dem Ziel vor der Migration. Verwenden Sie dazu die Einstellung Target Extra Connection Attribut (ECA)/Endpunkt. Weitere Informationen finden Sie unter Verwenden einer PostgreSQL-Datenbank als Ziel für den AWS Database Migration Service.
afterConnectScript=SET session_replication_role='replica'
  • Verwenden Sie optimierte LOB-Einstellungen wie eingeschränkte oder Inline-LOB für die Migration.
  • Testen Sie Ihren Workload mit der standardmäßigen transaktionalen CDC-Apply vor Verwendung der Batch-Apply-CDC-Methode. Weitere Informationen finden Sie unter Wie kann ich die DMS-Batch-Anwendungsfunktion verwenden, um die Leistung der CDC-Replikation zu verbessern?
  • Erhöhen Sie die Werte von executeTimeout in den Einstellungen des Zielendpunkts. Dieser Wert legt das Timeout der Client-Anweisung für eine PostgreSQL-Instance fest. Der Standardwert ist 60 Sekunden.
  • Wenn Sie Sequenzen für ID-Spalten verwenden, legen Sie die Werte auf dem Ziel höher fest als in der Quelle. Stellen Sie sicher, dass die Zielwerte zum Zeitpunkt der Umstellung der Migration immer noch höher sind als Ihre Quelle. Dieser Ansatz verhindert die Kollision von Sequenz-IDs nach der Migration.
  • Um die Leistung in der Volllastphase zu verbessern, verwenden Sie Einstellungen wie:
    • maxFullLoadSubTasks – Der Standardwert ist 8 und der Höchstwert ist 49. Diese Einstellung ist nützlich, aber stellen Sie sicher, dass Sie genügend Ressourcen zur Verfügung haben.
    • CommitRate – Verwenden Sie diese Einstellung, um die maximale Anzahl von Datensätzen anzugeben, die zusammen übertragen werden können.
      • Für den vollständigen LOB-Modus in der Volllastphase - N-Zeilen aus der Quelle = N-Einfügungen+N-Aktualisierungen im Ziel = N-Ereignisse, wobei CommitRate=N.
      • Für eingeschränkten LOB-Modus in der Volllastphase – Schreiben Sie N-Zeilen in die CSV-Datei, wobei CommitRate=N).
    • Erhöhen Sie bei großen Tabellen die Größe der CSV-Datei. Dies wird von MaxFileSize in den Einstellungen des Zielendpunkts gesteuert.

    Migrieren einer Oracle-Datenbank zu einer PostgreSQL-Datenbank

    Hinweis: Bevor Sie mit diesen Schritten fortfahren, bereiten Sie Ihre Oracle-Quelldatenbank wie in den Voraussetzungen beschrieben vor.

    1.    Installieren Sie die SQL-Treiber und das AWS Schema Conversion Tool (AWS SCT) auf Ihrem lokalen Computer.

    2.    Konfigurieren Sie Ihre Oracle-Quell- und PostgreSQL-Zieldatenbanken.

    3.    Konvertieren Sie das Oracle-Schema mithilfe von AWS SCT in PostgreSQL.

    4.    Erstellen Sie eine AWS-DMS-Replikations-Instance.

    5.    Erstellen Sie Ihre AWS-DMS-Quell- und Zielendpunkte.

    6.    Erstellen Sie Ihre AWS-DMS-Aufgabe, und führen Sie sie dann aus.

    7.    Wenden Sie unter Tabellenzuordnungen eine Transformationsregel an. Fügen Sie den Parameter rule-action mit dem Wert convert-lowercase hinzu. Die Oracle-Engine speichert standardmäßig alle Objektnamen in Großbuchstaben, PostgreSQL speichert jedoch alle Objektnamen in Kleinbuchstaben.

    8.    Erstellen Sie eine Volllast- und CDC-AWS-DMS-Aufgabe, um Ihre Daten zu replizieren. Beenden Sie die Aufgabe, wenn die Volllastphase abgeschlossen ist, indem Sie StopTaskCachedChangesNotApplied verwenden. Erstellen Sie jetzt sekundäre Indizes.

    9.    Gehen Sie zu PostgreSQL über.


    War dieser Artikel hilfreich?


    Benötigen Sie Hilfe zur Fakturierung oder technischen Support?