Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for Postgre SQL mit AWS SCT und AWS DMS unter Verwendung von AWS CLI und AWS CloudFormation - AWS Prescriptive Guidance

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 Sie Amazon RDS for Oracle zu Amazon RDS for Postgre SQL mit AWS SCT und AWS DMS unter Verwendung von AWS CLI und AWS CloudFormation

Erstellt von Pinesh Singal () AWS

Umgebung: PoC oder Pilotprojekt

Quelle: Amazon RDS für Oracle

Ziel: Amazon RDS für Postgre SQL

R-Typ: Re-Architect

Arbeitslast: Oracle; Open Source

Technologien: Migration; Datenbanken

AWSDienstleistungen: AWSDMS; AmazonRDS; AWS SCT

Übersicht

Dieses Muster zeigt, wie eine Amazon Relational Database Service (AmazonRDS) for Oracle-DB-Instance mit mehreren Terabyte mithilfe der AWS Befehlszeilenschnittstelle () zu einer Amazon RDS for SQL Postgre-DB-Instance migriert wird. AWS CLI Dieser Ansatz bietet minimale Ausfallzeiten und erfordert keine Anmeldung bei der Management Console. AWS

Dieses Muster hilft, manuelle Konfigurationen und individuelle Migrationen mithilfe der Konsolen AWS Schema Conversion Tool (AWSSCT) und AWS Database Migration Service (AWSDMS) zu vermeiden. Die Lösung richtet eine einmalige Konfiguration für mehrere Datenbanken ein und führt die Migrationen mithilfe AWS SCT von und auf dem durch. AWS DMS AWS CLI

Das Muster wird verwendet AWSSCT, um Datenbankschemaobjekte von Amazon RDS for Oracle nach Amazon RDS for Postgre zu konvertieren SQL und anschließend die Daten AWS DMS zu migrieren. Mithilfe von AWS CLI Python-Skripten in erstellen Sie AWS SCT Objekte und AWS DMS Aufgaben mit einer AWS CloudFormation Vorlage.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto.

  • Eine bestehende Amazon RDS for Oracle-DB-Instance.

  • Eine bestehende Amazon RDS for SQL Postgre-DB-Instance. 

  • Eine EC2 Amazon-Instanz oder ein lokaler Computer mit Windows- oder Linux-Betriebssystem zum Ausführen von Skripten.

  • Ein Verständnis der folgenden Arten von AWS DMS Migrationsaufgaben:full-load,cdc,full-load-and-cdc.  Weitere Informationen finden Sie in der AWS DMS Dokumentation unter Aufgabe erstellen

  • AWSSCT, installiert und konfiguriert mit den Treibern Java Database Connectivity (JDBC) für Oracle- und SQL Postgre-Datenbank-Engines. Weitere Informationen finden Sie in der AWS SCT Dokumentation unter Installation AWS SCT und Installation der erforderlichen Datenbanktreiber

  • Die AWSSchemaConversionToolBatch.jar Datei aus dem installierten AWS SCT Ordner wurde in Ihr Arbeitsverzeichnis kopiert.

  • Die cli-sct-dms-cft.zip Datei (angehängt), heruntergeladen und in Ihr Arbeitsverzeichnis extrahiert.

Einschränkungen

  • Die Mindestanforderungen für Ihre Amazon RDS for Oracle-DB-Quell-Instance sind: 

    • Oracle-Versionen 12c (v12.1.0.2, v12.2.0.1), 18c (v18.0.0.0) und 19c (v19.0.0.0) für die Editionen Enterprise, Standard, Standard One und Standard Two.

    • Obwohl Amazon Oracle 18c (v18.0.0.0) RDS unterstützt, ist diese Version veraltet, da Oracle nach diesem Datum keine Patches mehr für 18c bereitstellt. end-of-support Weitere Informationen finden Sie unter Oracle on Amazon RDS in der RDS Amazon-Dokumentation.

    • Amazon RDS für Oracle 11g wird nicht mehr unterstützt.

  • Die Mindestanforderungen für Ihre Amazon RDS for SQL Postgre-DB-Ziel-Instance sind: 

    • SQLPostgre-Versionen 9 (Versionen 9.5 und 9.6), 10.x, 11.x, 12.x und 13.x

Produktversionen

  • Amazon RDS für Oracle-DB-Instance Version 12.1.0.2 und höher

  • Amazon RDS für SQL Postgre-DB-Instance Version 11.5 und höher

  • AWSCLIVersion 2 

  • Die neueste Version von AWS SCT

  • Die neueste Version von Python 3

Architektur

Quelltechnologie-Stack

  • Amazon RDS für Oracle

Zieltechnologie-Stack

  • Amazon RDS für Postgre SQL

Quell- und Zielarchitektur

Das folgende Diagramm zeigt die Migration einer Amazon RDS for Oracle-DB-Instance zu einer Amazon RDS for SQL Postgre-DB-Instance mithilfe von AWS DMS Python-Skripten.

Migration RDS für die Oracle-DB-Instance RDS zur SQL Postgre-DB-Instance mithilfe von Python AWSDMS.

Das Diagramm zeigt den folgenden Migrationsablauf:

  1. Das Python-Skript wird verwendet AWSSCT, um eine Verbindung zu den Quell- und Ziel-DB-Instances herzustellen.

  2. Der Benutzer beginnt AWS SCT mit dem Python-Skript, konvertiert den Oracle-Code in SQL Postgre-Code und führt ihn auf der Ziel-DB-Instance aus.

  3. Das Python-Skript erstellt AWS DMS Replikationsaufgaben für die Quell- und Ziel-DB-Instances.

  4. Der Benutzer stellt Python-Skripts bereit, um die AWS DMS Aufgaben zu starten, und stoppt die Aufgaben dann, nachdem die Datenmigration abgeschlossen ist.

Automatisierung und Skalierung

Sie können diese Migration automatisieren, indem Sie Ihrem Python-Skript zusätzliche Parameter und sicherheitsrelevante Änderungen für mehrere Funktionen in einem einzigen Programm hinzufügen. 

Tools

  • AWSCommand Line Interface (AWSCLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können.

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus AWS konto- und regionsübergreifend zu verwalten. Dieses Muster konvertiert die .csv-Eingabedatei mithilfe eines Python-Skripts in eine .json-Eingabedatei. Die.json-Datei wird in AWS CLI Befehlen verwendet, um einen AWS CloudFormation Stack zu erstellen, der mehrere AWS DMS Replikationsaufgaben mit Amazon-Ressourcennamen (ARNs), Migrationstypen, Aufgabeneinstellungen und Tabellenzuordnungen erstellt.

  • AWSDer Database Migration Service (AWSDMS) unterstützt Sie bei der Migration von Datenspeichern in die AWS Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups. Dieses Muster wird verwendet, AWS DMS um Aufgaben mit einem Python-Skript, das über die Befehlszeile ausgeführt wird, zu erstellen, zu starten und zu beenden und die AWS CloudFormation Vorlage zu erstellen.

  • AWSDas Schema Conversion Tool (AWSSCT) unterstützt heterogene Datenbankmigrationen, indem es das Quelldatenbankschema und einen Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert, das mit der Zieldatenbank kompatibel ist. Für dieses Muster ist die AWSSchemaConversionToolBatch.jar Datei aus dem installierten Verzeichnis erforderlich. AWS SCT

Code

Die cli-sct-dms-cft.zip Datei (angehängt) enthält den kompletten Quellcode für dieses Muster.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Konfigurieren Sie AWS SCT es so, dass es von der ausgeführt wird AWSCLI.

1. Konfigurieren Sie die Konfigurationsdetails der Quell- und Zielumgebung in der database_migration.txt Datei im folgenden Format:

#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432

2. Ändern Sie die AWS SCT Konfigurationsparameter gemäß Ihren Anforderungen in den folgenden Dateien: project_settings.xmlOracle_PG_Test_Batch.xml, undORACLE-orcl-to-POSTGRESQL.xml.

DBA

Führen Sie das Python-Skript run_aws_sct.py aus.

Führen Sie das run_aws_sct.py Python-Skript mit dem folgenden Befehl aus:

$ python run_aws_sct.py database_migration.txt

Das Python-Skript konvertiert die Datenbankobjekte von Oracle nach Postgre SQL und erstellt SQL Dateien im Postgre-FormatSQL. Das Skript erstellt auch die Database migration assessment report PDF-Datei, die Ihnen detaillierte Empfehlungen und Konvertierungsstatistiken für Datenbankobjekte bietet.

DBA

Erstellen Sie Objekte in Amazon RDS für PostgreSQL.

  1. Ändern Sie die von generierten SQL Dateien manuell AWSSCT, falls erforderlich.

  2. Führen Sie die SQL Dateien aus und erstellen Sie Objekte in Ihrer Amazon RDS for SQL Postgre-DB-Instance.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine AWS DMS Replikationsinstanz.

Melden Sie sich bei der AWS Management Console an, öffnen Sie die AWS DMS Konsole und erstellen Sie eine Replikationsinstanz, die Ihren Anforderungen entsprechend konfiguriert ist.

Weitere Informationen finden Sie unter Erstellen einer Replikationsinstanz in der AWS DMS Dokumentation und Wie erstelle ich eine AWS DMS Replikationsinstanz in der AWS Support-Dokumentation.

DBA

Erstellen Sie den Quellendpunkt.

Wählen Sie in der AWS DMS Konsole Endpoints aus und erstellen Sie dann einen Quellendpunkt für die Oracle-Datenbank entsprechend Ihren Anforderungen. 

Hinweis: Das zusätzliche Verbindungsattribut muss numberDataTypeScale einen -2 Wert haben.

Weitere Informationen finden Sie in der AWS DMS Dokumentation unter Quell- und Zielendpunkte erstellen.

 

DBA

Erstellen Sie den Zielendpunkt.

Wählen Sie in der AWS DMS Konsole Endpoints aus und erstellen Sie dann einen Zielendpunkt für die SQL Postgre-Datenbank entsprechend Ihren Anforderungen.  

Weitere Informationen finden Sie in der Dokumentation unter Quell- und Zielendpunkte erstellen. AWS DMS

DevOps Ingenieur

Konfigurieren Sie die AWS DMS Replikationsdetails so, dass sie von der ausgeführt AWS CLI werden sollen.

Konfigurieren Sie die AWS DMS Quell- und Zielendpunkte sowie die Replikationsdetails in der dms-arn-list.txt Datei mit dem QuellendpunktARN, dem Zielendpunkt ARN und der Replikationsinstanz ARN im folgenden Format:

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

Führen Sie das Python-Skript dms-create-task .py aus, um die AWS DMS Aufgaben zu erstellen.

1. Führen Sie das dms-create-task.py Python-Skript mit dem folgenden Befehl aus:

$ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

  • database_migration.txtist die Textdatei für die Datenbankmigration

  • dms-arn-list.txtist die ARN Liste für AWS DMS

  • <cft-stack-name>ist der benutzerdefinierte AWS CloudFormation Stack-Name

  • <migration-type>ist der Migrationstyp (Full-Load, CDC oder) full-load-and-cdc

2. Abhängig von Ihrem Migrationstyp können Sie die folgenden Befehle verwenden, um drei Arten von AWS DMS Aufgaben zu erstellen:

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

  • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

3. Der AWS CloudFormation Stapel und die AWS DMS Aufgaben werden erstellt 

 

DBA

Prüfen Sie, ob die AWS DMS Aufgaben bereit sind.

Überprüfen Sie in der AWS Konsole im Abschnitt Ready Status, ob Ihre AWS DMS Aufgaben den Status haben.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Starte die AWS DMS Aufgaben.

Führen Sie das dms-start-task.py Python-Skript mit dem folgenden Befehl aus:

$ python dms-start-task.py start ‘<cdc-start-datetime>’

Hinweis: Das Startdatum und die Startzeit müssen im Datentypformat 'DD-MON-YYYY' oder 'YYYY-MM-DDTHH:MI:SS' timestamp angegeben werden (z. B. ‘01-Dec-2019’ oder‘2018-03-08T12:12:12’)

Sie können den AWS DMS Aufgabenstatus auf der Registerkarte Tabellenstatistiken Ihrer Migrationsaufgaben auf der Seite Aufgaben der AWS DMS Konsole überprüfen.

DBA

Überprüfen Sie die Daten.

  1. Nach Abschluss der Volllastmigration wird die Aufgabe kontinuierlich ausgeführt, um kontinuierliche Datenänderungen zu gewährleisten (CDC).

  2. Wenn der Vorgang abgeschlossen CDC ist oder keine Änderungen mehr migriert werden müssen, überprüfen und validieren Sie die Ergebnisse und Daten der Migrationsaufgabe in Ihren Oracle- und SQL Postgre-Datenbanken.

  3. Sie können Ihre Daten validieren, indem Sie die Status- und Zählspalten (Validation stateValidation pendingValidation failed,Validation suspended,, undValidation details) auf der Registerkarte Tabellenstatistiken Ihrer Datenbankmigrationsaufgabe auf der Seite Aufgaben der AWS DMS Konsole überprüfen. 

Weitere Informationen finden Sie in der AWS DMS Dokumentation unter AWSDMSDatenvalidierung.

DBA

Beenden Sie die AWS DMS Aufgaben.

Führen Sie das Python-Skript mit dem folgenden Befehl aus:

$ python dms-start-task.py stop

Hinweis: Je nach failed Validierungsstatus können AWS DMS Aufgaben mit einem Status beendet werden. Weitere Informationen finden Sie in der Tabelle zur Problembehandlung im Abschnitt Zusätzliche Informationen.

DBA

Fehlerbehebung

ProblemLösung

AWSSCTQuell- und Zieltestverbindungen schlagen fehl

Konfigurieren Sie die JDBC Treiberversionen und die Regeln für eingehenden Datenverkehr der VPC Sicherheitsgruppe so, dass sie den eingehenden Datenverkehr akzeptieren.

Der Testlauf am Quell- oder Zielendpunkt schlägt fehl

Überprüfen Sie, ob sich die Endpunkteinstellungen und die Replikationsinstanz im Available Status befinden. Überprüfen Sie, ob der Status der Endpunktverbindung lautetSuccessful

Weitere Informationen finden Sie in der AWS Support-Dokumentation unter Wie kann ich Fehler bei der AWS DMS Endpunktkonnektivität beheben?

Die Ausführung unter Volllast schlägt fehl

Überprüfen Sie, ob die Quell- und Zieldatenbanken übereinstimmende Datentypen und Größen haben. 

Weitere Informationen finden Sie in der AWS DMS Dokumentation unter Problembehandlung AWS DMS bei Migrationsaufgaben.

Fehler beim Validierungslauf

Prüfen Sie, ob die Tabelle einen Primärschlüssel hat, da Tabellen, die keine Primärschlüssel sind, nicht validiert werden.

Wenn die Tabelle einen Primärschlüssel enthält und Fehler auftreten, überprüfen Sie, ob das zusätzliche Verbindungsattribut im Quellendpunkt einen hatnumberDataTypeScale=-2.

Weitere Informationen finden Sie in der AWS DMS Dokumentation unter Zusätzliche Verbindungsattribute bei der Verwendung von Oracle als Quelle für AWS DMS OracleSettings, und Problembehandlung.

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip