Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle utilizzando Oracle Data Pump - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui la migrazione di un database Oracle locale ad Amazon RDS for Oracle utilizzando Oracle Data Pump

Creato da Mohan Annam (AWS) e Brian motzer (AWS)

Ambiente: PoC o pilota

Fonte: Database: Relazionale

Target: Amazon RDS per Oracle

Tipo R: Replatform

Carico di lavoro: Oracle

Tecnologie: migrazione; database

Servizi AWS: Amazon RDS

Riepilogo

Questo modello descrive come migrare un database Oracle da un data center locale a un'istanza Amazon Relational Database Service (Amazon RDS) per Oracle DB utilizzando Oracle Data Pump. 

Il modello prevede la creazione di un file di dump dei dati dal database di origine, l'archiviazione del file in un bucket Amazon Simple Storage Service (Amazon S3) e il ripristino dei dati su un'istanza DB Amazon RDS for Oracle. Questo modello è utile in caso di limitazioni nell'utilizzo di AWS Database Migration Service (AWS DMS) per la migrazione.

Prerequisiti e limitazioni

Prerequisiti

Versioni del prodotto

  • Oracle Data Pump è disponibile solo per Oracle Database 10g Release 1 (10.1) e versioni successive.

Architettura

Stack tecnologico di origine

  • Database Oracle locali

Stack tecnologico Target

  • Amazon RDS per Oracle

  • Client SQL (Oracle SQL Developer)

  • Un bucket S3

Architettura di origine e destinazione

Caricamento multiparte di Amazon S3 da un database Oracle locale su Amazon RDS utilizzando Oracle Data Pump.

Strumenti

Servizi AWS

Altri strumenti

  • Oracle Data Pump ti aiuta a spostare dati e metadati da un database all'altro a velocità elevate. In questo modello, Oracle Data Pump viene utilizzato per esportare il file di dump dei dati (.dmp) sul server Oracle e per importarlo in Amazon RDS for Oracle. Per ulteriori informazioni, consulta Importazione di dati in Oracle su Amazon RDS nella documentazione di Amazon RDS.

  • Oracle SQL Developer è un ambiente di sviluppo integrato che semplifica lo sviluppo e la gestione dei database Oracle nelle implementazioni tradizionali e basate sul cloud. Interagisce sia con il database Oracle locale che con Amazon RDS for Oracle per eseguire i comandi SQL necessari per l'esportazione e l'importazione dei dati.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea il bucket.

Per creare il bucket S3, segui le istruzioni nella documentazione AWS.

Amministratore di sistema AWS
AttivitàDescrizioneCompetenze richieste

Configura le autorizzazioni IAM.

Per configurare le autorizzazioni, segui le istruzioni nella documentazione di AWS.

Amministratore di sistema AWS
AttivitàDescrizioneCompetenze richieste

Crea l'istanza database Amazon RDS for Oracle di destinazione.

Per creare l'istanza Amazon RDS for Oracle, segui le istruzioni nella documentazione AWS.

Amministratore di sistema AWS

Associa il ruolo all'istanza DB.

Per associare il ruolo all'istanza, segui le istruzioni nella documentazione AWS.

DBA
AttivitàDescrizioneCompetenze richieste

Creare l'utente.

Connect al database Amazon RDS for Oracle di destinazione da Oracle SQL Developer o SQL*Plus ed esegui il seguente comando SQL per creare l'utente in cui importare lo schema.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
AttivitàDescrizioneCompetenze richieste

Crea un file di dump dei dati.

Per creare un file di dump denominato sample.dmp nella DATA_PUMP_DIR directory per l'esportazione dell'SAMPLE_SCHEMAutente, utilizzare lo script seguente.

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; /

Controlla i dettagli dell'esportazione esaminando il export.log file nella tua directory localeDATA_PUMP_DIR.

DBA
AttivitàDescrizioneCompetenze richieste

Carica il file di dump dei dati dall'origine al bucket S3.

Utilizzando AWS CLI, esegui il seguente comando.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
AttivitàDescrizioneCompetenze richieste

Scarica il file di dump dei dati su Amazon RDS

Per copiare il file di dump sample.dmp dal bucket S3 al database Amazon RDS for Oracle, esegui il seguente comando SQL. In questo esempio, il sample.dmp file viene scaricato dal my-s3-integration1 bucket S3 nella directory Oracle. DATA_PUMP_DIR Assicurati di disporre di spazio su disco sufficiente all'istanza RDS per ospitare sia il database che il file di esportazione.

-- 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;

Il comando precedente restituisce un ID di attività. Per verificare lo stato del download esaminando i dati nell'ID dell'attività, esegui il comando seguente.

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

Per visualizzare i file nella DATA_PUMP_DIR directory, esegui il comando seguente.

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;
Amministratore di sistema AWS
AttivitàDescrizioneCompetenze richieste

Ripristina lo schema e i dati su Amazon RDS.

Per importare il file di dump nello schema del sample_schema database, esegui il seguente comando SQL da SQL Developer o SQL*Plus.

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; /

Per visualizzare il file di registro dell'importazione, esegui il comando seguente.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
AttivitàDescrizioneCompetenze richieste

Elenca e pulisci i file di esportazione.

Elenca e rimuovi i file di esportazione nella DATA_PUMP_DIR directory, esegui i seguenti comandi.

-- 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');
Amministratore di sistema AWS

Risorse correlate