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 PostgreSQL mit AWS SCT und AWS DMS mithilfe von AWS CLI und AWS CloudFormation
Erstellt von Pinesh Singal (AWS)
Umgebung: PoC oder Pilotprojekt | Quelle: Amazon RDS for Oracle | Ziel: Amazon RDS for PostgreSQL |
R-Typ: Re-Architect | Arbeitslast: Oracle; Open Source | Technologien: Migration; Datenbanken |
AWS-Dienste: AWS DMS; Amazon RDS; AWS SCT |
Übersicht
Dieses Muster zeigt, wie eine Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance mit mehreren Terabyte mithilfe der AWS-Befehlszeilenschnittstelle (AWS CLI) zu einer Amazon RDS for PostgreSQL PostgreSQL-DB-Instance migriert wird. Dieser Ansatz bietet minimale Ausfallzeiten und erfordert keine Anmeldung bei der AWS-Managementkonsole.
Dieses Muster hilft, manuelle Konfigurationen und individuelle Migrationen mithilfe der Konsolen AWS Schema Conversion Tool (AWS SCT) und AWS Database Migration Service (AWS DMS) zu vermeiden. Die Lösung richtet eine einmalige Konfiguration für mehrere Datenbanken ein und führt die Migrationen mithilfe von AWS SCT und AWS DMS auf der AWS-CLI durch.
Das Muster verwendet AWS SCT, um Datenbankschemaobjekte von Amazon RDS for Oracle nach Amazon RDS for PostgreSQL zu konvertieren, und verwendet dann AWS DMS, um die Daten zu migrieren. Mithilfe von Python-Skripts in AWS CLI erstellen Sie AWS SCT-Objekte und AWS DMS-Aufgaben mit einer CloudFormation AWS-Vorlage.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
Eine bestehende Amazon RDS for Oracle DB-Instance.
Eine bestehende Amazon RDS for PostgreSQL PostgreSQL-DB-Instance.
Eine Amazon EC2 EC2-Instance 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.AWS SCT, installiert und konfiguriert mit Java Database Connectivity (JDBC) -Treibern für Oracle- und PostgreSQL-Datenbank-Engines. Weitere Informationen finden Sie unter Installation von AWS SCT und Installation der erforderlichen Datenbanktreiber in der AWS SCT-Dokumentation.
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.
Die neueste Version der AWS DMS-Replikationsinstanz-Engine. Weitere Informationen finden Sie unter Wie erstelle ich eine AWS DMS-Replikationsinstanz
in der AWS-Supportdokumentation und unter AWS DMS 3.4.4-Versionshinweise in der AWS DMS-Dokumentation. AWS CLI Version 2, installiert und konfiguriert mit Ihrer Zugriffsschlüssel-ID, Ihrem geheimen Zugriffsschlüssel und dem standardmäßigen AWS-Regionsnamen für die Amazon Elastic Compute Cloud (Amazon EC2) -Instance oder das Betriebssystem (OS), auf dem die Skripts ausgeführt werden. Weitere Informationen finden Sie unter Installation, Aktualisierung und Deinstallation der AWS CLI Version 2 und Konfiguration der AWS-CLI in der AWS CLI-Dokumentation.
Vertrautheit mit CloudFormation AWS-Vorlagen. Weitere Informationen finden Sie in der CloudFormation AWS-Dokumentation unter CloudFormation AWS-Konzepte.
Python Version 3, installiert und konfiguriert auf der Amazon EC2 EC2-Instance oder dem Betriebssystem, auf dem die Skripts ausgeführt werden. Weitere Informationen finden Sie in der Python-Dokumentation
.
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 RDS Oracle 18c (v18.0.0.0) 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 Amazon RDS-Dokumentation.
Amazon RDS for Oracle 11g wird nicht mehr unterstützt.
Die Mindestanforderungen für Ihre Amazon RDS for PostgreSQL PostgreSQL-DB-Ziel-Instance sind:
PostgreSQL-Versionen 9 (Versionen 9.5 und 9.6), 10.x, 11.x, 12.x und 13.x
Produktversionen
Amazon RDS for Oracle DB-Instance Version 12.1.0.2 und höher
Amazon RDS for PostgreSQL DB-Instance Version 11.5 und höher
AWS-CLI Version 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 PostgreSQL
Quell- und Zielarchitektur
Das folgende Diagramm zeigt die Migration einer Amazon RDS for Oracle DB-Instance zu einer Amazon RDS for PostgreSQL DB-Instance mithilfe von AWS DMS- und Python-Skripten.
Das Diagramm zeigt den folgenden Migrationsablauf:
Das Python-Skript verwendet AWS SCT, um eine Verbindung zu den Quell- und Ziel-DB-Instances herzustellen.
Der Benutzer startet AWS SCT mit dem Python-Skript, konvertiert den Oracle-Code in PostgreSQL-Code und führt ihn auf der Ziel-DB-Instance aus.
Das Python-Skript erstellt AWS DMS-Replikationsaufgaben für die Quell- und Ziel-DB-Instances.
Der Benutzer stellt Python-Skripte 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
AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
AWS CloudFormation hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg 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 CloudFormation AWS-Stack zu erstellen, der mehrere AWS-DMS-Replikationsaufgaben mit Amazon-Ressourcennamen (ARNs), Migrationstypen, Aufgabeneinstellungen und Tabellenzuordnungen erstellt.
AWS Database Migration Service (AWS DMS) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups. Dieses Muster 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-Vorlage zu erstellen. CloudFormation
Das AWS Schema Conversion Tool (AWS SCT) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. Für dieses Muster ist die
AWSSchemaConversionToolBatch.jar
Datei aus dem installierten AWS SCT-Verzeichnis erforderlich.
Code
Die cli-sct-dms-cft.zip
Datei (angehängt) enthält den vollständigen Quellcode für dieses Muster.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Konfigurieren Sie AWS SCT für die Ausführung über die AWS-CLI. | 1. Konfigurieren Sie die Konfigurationsdetails der Quell- und Zielumgebung in der
2. Ändern Sie die AWS SCT-Konfigurationsparameter gemäß Ihren Anforderungen in den folgenden Dateien: | DBA |
Führen Sie das Python-Skript run_aws_sct.py aus. | Führen Sie das
Das Python-Skript konvertiert die Datenbankobjekte von Oracle nach PostgreSQL und erstellt SQL-Dateien im PostgreSQL-Format. Das Skript erstellt auch die | DBA |
Erstellen Sie Objekte in Amazon RDS for PostgreSQL. |
| DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine AWS DMS-Replikations-Instance. | Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die AWS DMS-Konsole und erstellen Sie eine Replikationsinstanz, die gemäß Ihren Anforderungen konfiguriert ist. Weitere Informationen finden Sie unter Erstellen einer Replikationsinstanz in der AWS DMS-Dokumentation und Wie erstelle ich eine AWS DMS-Replikationsinstanz | 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 gemäß Ihren Anforderungen. Hinweis: Das zusätzliche Verbindungsattribut muss Weitere Informationen finden Sie unter Quell- und Zielendpunkte erstellen in der AWS DMS-Dokumentation.
| DBA |
Erstellen Sie den Zielendpunkt. | Wählen Sie in der AWS DMS-Konsole Endpoints aus und erstellen Sie dann einen Zielendpunkt für die PostgreSQL-Datenbank gemäß Ihren Anforderungen. Weitere Informationen finden Sie unter Quell- und Zielendpunkte erstellen in der AWS DMS-Dokumentation. | DevOps Ingenieur |
Konfigurieren Sie die AWS DMS-Replikationsdetails für die Ausführung über die AWS-CLI. | Konfigurieren Sie die AWS DMS-Quell- und Zielendpunkte sowie die Replikationsdetails in der
| DBA |
Führen Sie das Python-Skript dms-create-task .py aus, um die AWS DMS-Aufgaben zu erstellen. | 1. Führen Sie das
2. Abhängig von Ihrem Migrationstyp können Sie die folgenden Befehle verwenden, um drei Arten von AWS DMS-Aufgaben zu erstellen:
3. Der CloudFormation AWS-Stack 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 Status, ob Ihre AWS DMS-Aufgaben den | DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Starten Sie die AWS DMS-Aufgaben. | Führen Sie das
Hinweis: Das Startdatum und die Startzeit müssen im Datentypformat Sie können den Status der AWS DMS-Aufgaben auf der Registerkarte Tabellenstatistiken Ihrer Migrationsaufgaben auf der Seite Aufgaben der AWS DMS-Konsole überprüfen. | DBA |
Validieren Sie die Daten. |
Weitere Informationen finden Sie unter AWS DMS-Datenvalidierung in der AWS DMS-Dokumentation. | DBA |
Beenden Sie die AWS DMS-Aufgaben. | Führen Sie das Python-Skript mit dem folgenden Befehl aus:
Hinweis: AWS DMS-Aufgaben können je nach | DBA |
Fehlerbehebung
Problem | Lösung |
---|---|
Die Quell- und Zieltestverbindungen von AWS SCT schlagen fehl | Konfigurieren Sie die JDBC-Treiberversionen und die Regeln für den 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 Weitere Informationen finden Sie in der AWS-Support-Dokumentation unter Wie kann ich Verbindungsfehler bei AWS DMS-Endgeräten beheben |
Der Volllastlauf schlägt fehl | Überprüfen Sie, ob die Quell- und Zieldatenbanken übereinstimmende Datentypen und Größen haben. Weitere Informationen finden Sie unter Fehlerbehebung bei Migrationsaufgaben in AWS DMS in der AWS DMS-Dokumentation. |
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 hat Weitere Informationen finden Sie unter Zusätzliche Verbindungsattribute bei der Verwendung von Oracle als Quelle für AWS DMS und Problembehandlung in der AWS DMS-Dokumentation. OracleSettings |
Zugehörige Ressourcen
Einführung in AWS DMS
(Video) Cloudformation
(AWS-CLI-Dokumentation) Cloudformation Create-Stack
(AWS-CLI-Dokumentation) dms
(AWS-CLI-Dokumentation)