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 eine lokale Oracle-Datenbank zu Amazon RDS for Oracle, indem Sie den direkten Oracle Data Pump-Import über einen Datenbank-Link verwenden
Erstellt von Rizwan Wangde () AWS
Umwelt: Produktion | Quelle: Lokale Oracle-Datenbank | Ziel: Amazon RDS für Oracle |
R-Typ: Replatform | Arbeitslast: Oracle | Technologien: Migration; Datenbanken |
AWSDienste: AWSDMS; AWS Direct Connect; Amazon RDS |
Übersicht
Zahlreiche Muster behandeln die Migration von lokalen Oracle-Datenbanken zu Amazon RDS for Oracle mithilfe von Oracle Data Pump, einem systemeigenen Oracle-Hilfsprogramm, das die bevorzugte Methode zur Migration großer Oracle-Workloads darstellt. Diese Muster beinhalten in der Regel das Exportieren von Anwendungsschemas oder Tabellen in Dump-Dateien, das Übertragen der Dump-Dateien in ein Datenbankverzeichnis auf Amazon RDS for Oracle und das anschließende Importieren der Anwendungsschemas und Daten aus den Dumpdateien.
Bei diesem Ansatz kann eine Migration länger dauern, abhängig von der Größe der Daten und der Zeit, die für die Übertragung der Dumpdateien auf die RDS Amazon-Instance benötigt wird. Darüber hinaus befinden sich die Dumpdateien auf dem Amazon Elastic Block Store (AmazonEBS) -Volume der RDS Amazon-Instance, das groß genug für die Datenbank und die Dumpdateien sein muss. Wenn die Dump-Dateien nach dem Import gelöscht werden, kann der leere Speicherplatz nicht abgerufen werden. Sie zahlen also weiterhin für ungenutzten Speicherplatz.
Dieses Muster mildert diese Probleme, indem ein direkter Import in die RDS Amazon-Instance mithilfe der Oracle Data Pump API (DBMS_DATAPUMP
) über einen Datenbank-Link durchgeführt wird. Das Muster initiiert eine gleichzeitige Export- und Import-Pipeline zwischen der Quell- und der Zieldatenbank. Bei diesem Muster ist es nicht erforderlich, die Größe eines EBS Volumes für die Dumpdateien festzulegen, da auf dem Volume keine Dumpdateien erstellt oder gespeichert werden. Durch diesen Ansatz werden die monatlichen Kosten für ungenutzten Festplattenspeicher eingespart.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives Amazon Web Services (AWS) -Konto.
Eine virtuelle private Cloud (VPC), die mit privaten Subnetzen in mindestens zwei Availability Zones konfiguriert ist, um die Netzwerkinfrastruktur für die RDS Amazon-Instance bereitzustellen.
Eine Oracle-Datenbank in einem lokalen Rechenzentrum.
Eine bestehende Amazon RDS Oracle-Instance
in einer einzigen Availability Zone. Die Verwendung einer einzelnen Availability Zone verbessert die Schreibleistung während der Migration. Eine Multi-AZ-Bereitstellung kann 24—48 Stunden vor der Umstellung aktiviert werden. AWSDirect Connect
(empfohlen für große Datenbanken). Lokale Netzwerkkonnektivität und Firewallregeln, die so konfiguriert sind, dass sie eine eingehende Verbindung von der RDS Amazon-Instance zur lokalen Oracle-Datenbank ermöglichen.
Einschränkungen
Die Datenbankgrößenbeschränkung bei Amazon RDS for Oracle beträgt 64 TiB (Stand Dezember 2022).
Produktversionen
Quelldatenbank: Oracle Database Version 10g Release 1 und höher.
Zieldatenbank: Die aktuelle Liste der unterstützten Versionen und Editionen bei Amazon RDS finden Sie in der AWS Dokumentation unter Amazon RDS for Oracle.
Architektur
Quelltechnologie-Stack
Selbstverwaltete Oracle-Datenbank vor Ort oder in der Cloud
Zieltechnologie-Stack
Amazon RDS für Oracle
Zielarchitektur
Das folgende Diagramm zeigt die Architektur für die Migration von einer lokalen Oracle-Datenbank zu Amazon RDS for Oracle in einer Single-AZ-Umgebung. Die Pfeilrichtungen stellen den Datenfluss in der Architektur dar. Das Diagramm zeigt nicht, welche Komponente die Verbindung initiiert.
Die Amazon RDS for Oracle-Instance stellt eine Verbindung zur lokalen Oracle-Quelldatenbank her, um eine Volllastmigration über den Datenbank-Link durchzuführen.
AWSDMSstellt eine Verbindung zur lokalen Oracle-Quelldatenbank her, um mithilfe von Change Data Capture () eine fortlaufende Replikation durchzuführen. CDC
CDCÄnderungen werden auf die Amazon RDS for Oracle-Datenbank angewendet.
Tools
AWSDienstleistungen
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 verwendet CDC und verwendet die Einstellung Nur Datenänderungen replizieren.
AWSDirect Connect verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS Diensten einrichten und gleichzeitig Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
Amazon Relational Database Service (AmazonRDS) for Oracle unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS Cloud.
Andere Tools
Mit Oracle Data Pump
können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben. Client-Tools wie Oracle Instant Client
oder SQLDeveloper werden verwendet, um eine Verbindung herzustellen und SQL Abfragen in der Datenbank auszuführen.
Bewährte Methoden
AWSDirect Connect
Ein virtuelles privates Netzwerk (VPN) mit Amazon Site-to-Site VPN oder eine IPsec VPN Verbindung vom lokalen Netzwerk zum AWS Netzwerk
Oracle Database Native Network Encryption
, konfiguriert in der lokalen Oracle-Datenbank Verschlüsselung mit TLS
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie die Netzwerkkonnektivität von der Zieldatenbank zur Quelldatenbank ein. | Konfigurieren Sie das lokale Netzwerk und die Firewall so, dass eingehende Verbindungen von der RDS Amazon-Zielinstanz zur lokalen Oracle-Quelldatenbank zugelassen werden. | Netzwerkadministrator, Sicherheitsingenieur |
Erstellen Sie einen Datenbankbenutzer mit den entsprechenden Rechten. | Erstellen Sie einen Datenbankbenutzer in der lokalen Oracle-Quelldatenbank mit Rechten zur Migration von Daten zwischen der Quelle und dem Ziel mithilfe von Oracle Data Pump.
| DBA |
Bereiten Sie die lokale Quelldatenbank für AWS DMS CDC die Migration vor. | (Optional) Bereiten Sie die lokale Oracle-Quelldatenbank für die AWS DMS CDC Migration vor, nachdem Oracle Data Pump Full Load abgeschlossen ist:
| DBA |
Installieren und konfigurieren Sie SQL Developer. | Installieren und konfigurieren Sie SQLDeveloper | DBA, Migrationsingenieur |
Generieren Sie ein Skript, um die Tablespaces zu erstellen. | Verwenden Sie die folgende SQL Beispielabfrage, um das Skript in der Quelldatenbank zu generieren.
Das Skript wird auf die Zieldatenbank angewendet. | DBA |
Generieren Sie ein Skript zum Erstellen von Benutzern, Profilen, Rollen und Rechten. | Um ein Skript zur Erstellung der Datenbankbenutzer, Profile, Rollen und Rechte zu generieren, verwenden Sie die Skripten aus dem Oracle Support-Dokument How to Extract DDL for User including Privileges and Roles Using dbms_metadata.get_ddl (Doc-ID 2739952.1) ( Das Skript wird auf die Zieldatenbank angewendet. | DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie einen Datenbank-Link zur Quelldatenbank und überprüfen Sie die Konnektivität. | Um einen Datenbank-Link zur lokalen Quelldatenbank zu erstellen, können Sie den folgenden Beispielbefehl verwenden.
Führen Sie den folgenden SQL Befehl aus, um die Konnektivität zu überprüfen.
Die Konnektivität ist erfolgreich, wenn die | DBA |
Führen Sie die Skripts aus, um die Zielinstanz vorzubereiten. | Führen Sie die zuvor generierten Skripts aus, um die Amazon RDS for Oracle-Zielinstanz vorzubereiten:
Dadurch wird sichergestellt, dass die Oracle Data Pump-Migration die Schemas und ihre Objekte erstellen kann. | DBA, Migrationsingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Migrieren Sie die erforderlichen Schemas. | Verwenden Sie den Code im Abschnitt Zusätzliche Informationen, um die erforderlichen Schemas von der lokalen Quelldatenbank zur RDS Amazon-Zielinstanz zu migrieren:
Um die Leistung der Migration zu optimieren, können Sie die Anzahl der parallel Prozesse anpassen, indem Sie den folgenden Befehl ausführen.
| DBA |
Sammeln Sie Schemastatistiken, um die Leistung zu verbessern. | Der Befehl Gather Schema Statistics gibt die für Datenbankobjekte gesammelten Statistiken des Oracle Query Optimizers zurück. Mithilfe dieser Informationen kann der Optimierer den besten Ausführungsplan für jede Abfrage anhand dieser Objekte auswählen.
| DBA |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erfassen Sie SCN die lokale Oracle-Quelldatenbank. | Erfassen Sie die Systemänderungsnummer (SCN) Führen Sie die folgende SQL Anweisung aus, um den aktuellen SCN Wert in der Quelldatenbank zu generieren.
| DBA |
Führen Sie die Volllastmigration der Schemas durch. | Gehen Sie wie folgt vor, um die erforderlichen Schemas (
Ersetzen Sie den Code
Um die Leistung der Migration zu optimieren, können Sie die Anzahl der parallel Prozesse anpassen.
| DBA |
Deaktivieren Sie die Trigger unter den migrierten Schemas. | Bevor Sie mit der Aufgabe „AWSDMSCDCNur“ beginnen, deaktivieren Sie die Option | DBA |
Sammeln Sie Schemastatistiken, um die Leistung zu verbessern. | Der Befehl Gather Schema Statistics gibt die für Datenbankobjekte gesammelten Statistiken des Oracle Query Optimizers zurück. Mithilfe dieser Informationen kann der Optimierer den besten Ausführungsplan für jede Abfrage anhand dieser Objekte auswählen.
| DBA |
Wird verwendet AWSDMS, um eine fortlaufende Replikation von der Quelle zum Ziel durchzuführen. | Wird verwendet AWSDMS, um eine fortlaufende Replikation von der Oracle-Quelldatenbank zur Amazon RDS for Oracle-Zielinstanz durchzuführen. Weitere Informationen finden Sie unter Erstellen von Aufgaben für die laufende Replikation mithilfe von AWS DMS und im Blogbeitrag How to Work with Native CDC Support in AWS DMS | DBA, Migrationsingenieur |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Aktivieren Sie Multi-AZ auf der Instance 48 Stunden vor der Umstellung. | Wenn es sich um eine Produktionsinstanz handelt, empfehlen wir, die Multi-AZ-Bereitstellung auf der RDS Amazon-Instance zu aktivieren, um die Vorteile von Hochverfügbarkeit (HA) und Disaster Recovery (DR) nutzen zu können. | DBA, Migrationsingenieur |
Beendet die AWS DMS CDC Aufgabe „Nur“ (sofern sie aktiviert CDC war). |
| DBA |
Aktivieren Sie die Auslöser. | Aktivieren Sie TRIGGERS die, die Sie vor der Erstellung der CDC Aufgabe deaktiviert haben. | DBA |
Zugehörige Ressourcen
AWS
Oracle-Dokumentation
Zusätzliche Informationen
Code 1: Nur Volllastmigration, einzelnes Anwendungsschema
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 2: Nur Volllastmigration, mehrere Anwendungsschemas
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 3: Volllastmigration vor einer CDC reinen Aufgabe, einzelnes Anwendungsschema
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE( handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''<schema_name>'')'); -- To migrate one selected schema DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Code 4: Volllastmigration vor einer CDC reinen Aufgabe, mehrere Anwendungsschemas
DECLARE v_hdnl NUMBER; BEGIN v_hdnl := DBMS_DATAPUMP.OPEN (operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => '<DB LINK Name to Source Database>', job_name => null); DBMS_DATAPUMP.ADD_FILE (handle => v_hdnl, filename => 'import_01.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'SCHEMA_LIST', '''<SCHEMA_1>'',''<SCHEMA_2>'', ''<SCHEMA_3>'''); -- To migrate multiple schemas DBMS_DATAPUMP.METADATA_FILTER (v_hdnl, 'EXCLUDE_PATH_EXPR','IN (''STATISTICS'')'); -- To prevent gathering Statistics during the import DBMS_DATAPUMP.SET_PARAMETER (handle => v_hdnl, name => 'FLASHBACK_SCN', value => <CURRENT_SCN_VALUE_IN_SOURCE_DATABASE>); -- SCN required for AWS DMS CDC only task. DBMS_DATAPUMP.SET_PARALLEL (handle => v_hdnl, degree => 4); -- Number of parallel processes performing export and import DBMS_DATAPUMP.START_JOB(v_hdnl); END; /
Szenario, in dem ein gemischter Migrationsansatz besser funktionieren kann
In seltenen Szenarien, in denen die Quelldatenbank Tabellen mit Millionen von Zeilen und sehr großen LOBSEGMENT Spalten enthält, verlangsamt dieses Muster die Migration. Oracle migriert nacheinander LOBSEGMENTs über die Netzwerkverbindung. Es extrahiert eine einzelne Zeile (zusammen mit den LOB Spaltendaten) aus der Quelltabelle und fügt die Zeile in die Zieltabelle ein. Dabei wird der Vorgang wiederholt, bis alle Zeilen migriert sind. Oracle Data Pump über den Datenbank-Link unterstützt keine Massenlademechanismen oder direkte Pfadlademechanismen fürLOBSEGMENTs.
In dieser Situation empfehlen wir Folgendes:
Überspringen Sie die identifizierten Tabellen während der Oracle Data Pump-Migration, indem Sie den folgenden Metadatenfilter hinzufügen.
dbms_datapump.metadata_filter(handle =>h1, name=>'NAME_EXPR', value => 'NOT IN (''TABLE_1'',''TABLE_2'')');
Verwenden Sie eine AWS DMS Aufgabe (Volllastmigration, bei Bedarf mit CDC Replikation), um die identifizierten Tabellen zu migrieren. AWSDMSextrahiert mehrere Zeilen aus der Oracle-Quelldatenbank und fügt sie in einem Batch in die RDS Amazon-Zielinstanz ein, wodurch die Leistung verbessert wird.