Migrieren Sie eine lokale Oracle-Datenbank mithilfe von Oracle Data Pump zu Amazon RDS for Oracle - 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 eine lokale Oracle-Datenbank mithilfe von Oracle Data Pump zu Amazon RDS for Oracle

Erstellt von Mohan Annam (AWS) und Brian Motzer (AWS)

Umgebung: PoC oder Pilotprojekt

Quelle: Datenbanken: Relational

Ziel: Amazon RDS for Oracle

R-Typ: Replatform

Arbeitslast: Oracle

Technologien: Migration; Datenbanken

AWS-Dienste: Amazon RDS

Übersicht

Dieses Muster beschreibt, wie eine Oracle-Datenbank mithilfe von Oracle Data Pump von einem lokalen Rechenzentrum zu einer Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance migriert wird. 

Das Muster beinhaltet das Erstellen einer Datendumpdatei aus der Quelldatenbank, das Speichern der Datei in einem Amazon Simple Storage Service (Amazon S3) -Bucket und das anschließende Wiederherstellen der Daten in einer Amazon RDS for Oracle Oracle-DB-Instance. Dieses Muster ist nützlich, wenn Sie bei der Verwendung von AWS Database Migration Service (AWS DMS) für die Migration auf Einschränkungen stoßen.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktives AWS-Konto

  • Die erforderlichen Berechtigungen zum Erstellen von Rollen in AWS Identity and Access Management (IAM) und für einen mehrteiligen Amazon S3 S3-Upload

  • Die erforderlichen Berechtigungen zum Exportieren von Daten aus der Quelldatenbank

  • AWS-Befehlszeilenschnittstelle (AWS CLI) installiert und konfiguriert

Produktversionen

  • Oracle Data Pump ist nur für Oracle Database 10g Release 1 (10.1) und spätere Versionen verfügbar.

Architektur

Quelltechnologie-Stack

  • Lokale Oracle-Datenbanken

Zieltechnologie-Stack

  • Amazon RDS für Oracle

  • SQL-Client (Oracle SQL Developer)

  • Ein S3-Bucket

Quell- und Zielarchitektur

Mehrteiliger Amazon S3 S3-Upload von einer lokalen Oracle-DB zu Amazon RDS mithilfe von Oracle Data Pump.

Tools

AWS-Services

  • AWS Identity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden. In diesem Muster wird IAM verwendet, um die Rollen und Richtlinien zu erstellen, die für die Migration von Daten von Amazon S3 zu Amazon RDS for Oracle erforderlich sind.

  • Amazon Relational Database Service (Amazon RDS) für Oracle unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS-Cloud.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

Andere Tools

  • Mit Oracle Data Pump können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben. In diesem Muster wird Oracle Data Pump verwendet, um die Datendump-Datei (.dmp) auf den Oracle-Server zu exportieren und sie in Amazon RDS for Oracle zu importieren. Weitere Informationen finden Sie unter Daten in Oracle auf Amazon RDS importieren in der Amazon RDS-Dokumentation.

  • Oracle SQL Developer ist eine integrierte Entwicklungsumgebung, die die Entwicklung und Verwaltung von Oracle-Datenbanken sowohl in herkömmlichen als auch in Cloud-basierten Bereitstellungen vereinfacht. Es interagiert sowohl mit der lokalen Oracle-Datenbank als auch mit Amazon RDS for Oracle, um die für den Export und Import von Daten erforderlichen SQL-Befehle auszuführen.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie den Bucket.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um den S3-Bucket zu erstellen.

AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Konfigurieren Sie IAM-Berechtigungen.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um Berechtigungen zu konfigurieren.

AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die Amazon RDS-Ziel-DB-Instance für Oracle.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um die Amazon RDS for Oracle Oracle-Instance zu erstellen.

AWS-Systemadministrator

Ordnen Sie die Rolle der DB-Instance zu.

Folgen Sie den Anweisungen in der AWS-Dokumentation, um die Rolle der Instance zuzuordnen.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie den Benutzer.

Stellen Sie von Oracle SQL Developer oder SQL*Plus eine Connect zur Amazon RDS for Oracle-Zieldatenbank her und führen Sie den folgenden SQL-Befehl aus, um den Benutzer zu erstellen, in den das Schema importiert werden soll.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Datendump-Datei.

Verwenden Sie das folgende Skript, um eine Dump-Datei mit dem Namen sample.dmp des DATA_PUMP_DIR Verzeichnisses für den Export des SAMPLE_SCHEMA Benutzers zu erstellen.

DECLARE hdnl NUMBER; BEGIN hdnl := dbms_datapump.open(operation => 'EXPORT', job_mode => 'SCHEMA', job_name => NULL); dbms_datapump.add_file( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); dbms_datapump.add_file(handle => hdnl, filename => 'export.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')'); dbms_datapump.start_job(hdnl); END; /

Überprüfen Sie die Exportdetails, indem Sie die export.log Datei in Ihrem lokalen DATA_PUMP_DIR Verzeichnis überprüfen.

DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie die Datendump-Datei von der Quelle in den S3-Bucket hoch.

Führen Sie mit der AWS-CLI den folgenden Befehl aus.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie die Datendump-Datei auf Amazon RDS herunter

Um die Dump-Datei sample.dmp aus dem S3-Bucket in die Amazon RDS for Oracle Oracle-Datenbank zu kopieren, führen Sie den folgenden SQL-Befehl aus. In diesem Beispiel wird die sample.dmp Datei aus dem S3-Bucket my-s3-integration1 in das Oracle-Verzeichnis DATA_PUMP_DIR heruntergeladen. Stellen Sie sicher, dass Ihrer RDS-Instance ausreichend Festplattenspeicher zugewiesen ist, um sowohl die Datenbank als auch die Exportdatei aufzunehmen.

-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line. SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3( p_bucket_name => 'my-s3-integration', p_s3_prefix => 'sample.dmp', p_directory_name => 'DATA_PUMP_DIR') AS TASK_ID FROM DUAL;

Der vorherige Befehl gibt eine Task-ID aus. Führen Sie den folgenden Befehl aus, um den Status des Downloads anhand der Daten in der Task-ID zu überprüfen.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));

Führen Sie den folgenden Befehl aus, um die Dateien im DATA_PUMP_DIR Verzeichnis anzuzeigen.

SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
AWS-Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Stellen Sie das Schema und die Daten in Amazon RDS wieder her.

Um die Dump-Datei in das sample_schema Datenbankschema zu importieren, führen Sie den folgenden SQL-Befehl von SQL Developer oder SQL*Plus aus.

DECLARE hdnl NUMBER; BEGIN hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file); DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'import.log', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_log_file); DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')'); DBMS_DATAPUMP.START_JOB(hdnl); END; /

Führen Sie den folgenden Befehl aus, um die Protokolldatei aus dem Import anzuzeigen.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
AufgabeBeschreibungErforderliche Fähigkeiten

Listet die Exportdateien auf und bereinigt sie.

Führen Sie die folgenden Befehle aus, um die Exportdateien im DATA_PUMP_DIR Verzeichnis aufzulisten und zu entfernen.

-- List the files SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;
-- Remove the files EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp'); EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');
AWS-Systemadministrator

Zugehörige Ressourcen