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.
Die neueste Version der AWS DMS Replication Instance Engine. Weitere Informationen finden Sie in der AWS Support-Dokumentation unter Wie erstelle ich eine AWS DMS Replikationsinstanz
und in den Versionshinweisen zu AWS DMS 3.4.4 in der AWS DMS Dokumentation. AWSCLIVersion 2, installiert und konfiguriert mit Ihrer Zugriffsschlüssel-ID, Ihrem geheimen Zugriffsschlüssel und dem AWS Standardregionsnamen für die Amazon Elastic Compute Cloud (AmazonEC2) -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 von AWS CLI in der AWS CLI Dokumentation.
Vertrautheit mit Vorlagen AWS CloudFormation . Weitere Informationen finden Sie in der AWS CloudFormation Dokumentation unter AWS CloudFormation Konzepte.
Python Version 3, installiert und konfiguriert auf der EC2 Amazon-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 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.
Das Diagramm zeigt den folgenden Migrationsablauf:
Das Python-Skript wird verwendet AWSSCT, um eine Verbindung zu den Quell- und Ziel-DB-Instances herzustellen.
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.
Das Python-Skript erstellt AWS DMS Replikationsaufgaben für die Quell- und Ziel-DB-Instances.
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
Aufgabe | Beschreibung | Erforderliche 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
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 Postgre SQL und erstellt SQL Dateien im Postgre-FormatSQL. Das Skript erstellt auch die | DBA |
Erstellen Sie Objekte in Amazon RDS für PostgreSQL. |
| DBA |
Aufgabe | Beschreibung | Erforderliche 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 | 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 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
| 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 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 | DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Starte die AWS DMS Aufgaben. | Führen Sie das
Hinweis: Das Startdatum und die Startzeit müssen im Datentypformat 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. |
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:
Hinweis: Je nach | DBA |
Fehlerbehebung
Problem | Lö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 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 hat 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
Einführung in AWS DMS
(Video) Cloudformation
(AWSCLIDokumentation) Cloudformation Create-Stack
(Dokumentation) AWS CLI dms
(Dokumentation) AWS CLI