Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memigrasikan database Oracle lokal ke Amazon RDS for Oracle menggunakan Oracle Data Pump

Mohan Annam dan Brian motzer, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara memigrasikan database Oracle dari pusat data lokal ke Amazon Relational Database Service (Amazon RDS) untuk instans Oracle DB dengan menggunakan Oracle Data Pump. 

Polanya melibatkan pembuatan file dump data dari database sumber, menyimpan file dalam bucket Amazon Simple Storage Service (Amazon S3), dan kemudian memulihkan data ke instans Amazon RDS for Oracle DB. Pola ini berguna saat Anda menemukan batasan menggunakan AWS Database Migration Service (AWS DMS) untuk migrasi.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Izin yang diperlukan untuk membuat peran di AWS Identity and Access Management (IAM) dan untuk unggahan multipart Amazon S3

  • Izin yang diperlukan untuk mengekspor data dari database sumber

  • AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi

Versi produk

  • Oracle Data Pump hanya tersedia untuk Oracle Database 10g Release 1 (10.1) dan versi yang lebih baru.

Arsitektur

Tumpukan teknologi sumber

  • Database Oracle lokal

Tumpukan teknologi target

  • Amazon RDS for Oracle

  • Klien SQL (Pengembang Oracle SQL)

  • Ember S3

Arsitektur sumber dan target

Unggahan multipart Amazon S3 dari Oracle DB lokal ke Amazon RDS menggunakan Oracle Data Pump.

Alat

Layanan AWS

Alat lainnya

  • Oracle Data Pump membantu Anda memindahkan data dan metadata dari satu database ke database lainnya dengan kecepatan tinggi. Dalam pola ini, Oracle Data Pump digunakan untuk mengekspor file dump data (.dmp) ke server Oracle, dan untuk mengimpornya ke Amazon RDS for Oracle. Untuk informasi selengkapnya, lihat Mengimpor data ke Oracle di Amazon RDS dalam dokumentasi Amazon RDS.

  • Oracle SQL Developer adalah lingkungan pengembangan terintegrasi yang menyederhanakan pengembangan dan pengelolaan database Oracle baik dalam penerapan tradisional maupun berbasis cloud. Ini berinteraksi dengan database Oracle lokal dan Amazon RDS for Oracle untuk menjalankan perintah SQL yang diperlukan untuk mengekspor dan mengimpor data.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat bucket.

Untuk membuat bucket S3, ikuti petunjuk dalam dokumentasi AWS.

Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan izin IAM.

Untuk mengonfigurasi izin, ikuti petunjuk dalam dokumentasi AWS.

Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Buat target Amazon RDS for Oracle DB instans.

Untuk membuat instans Amazon RDS for Oracle, ikuti petunjuk dalam dokumentasi AWS.

Administrator sistem AWS

Kaitkan peran dengan instans DB.

Untuk mengaitkan peran dengan instans, ikuti instruksi dalam dokumentasi AWS.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Buat pengguna.

Connect ke target Amazon RDS for Oracle database dari Oracle SQL Developer atau SQL* Plus, dan jalankan perintah SQL berikut untuk membuat pengguna mengimpor skema ke dalam.

create user SAMPLE_SCHEMA identified by <PASSWORD>; grant create session, resource to <USER NAME>; alter user <USER NAME> quota 100M on users;
DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Buat file dump data.

Untuk membuat file dump bernama sample.dmp dalam DATA_PUMP_DIR direktori untuk mengekspor SAMPLE_SCHEMA pengguna, gunakan skrip berikut.

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

Tinjau detail ekspor dengan meninjau export.log file di DATA_PUMP_DIR direktori lokal Anda.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Unggah file dump data dari sumber ke bucket S3.

Menggunakan AWS CLI, jalankan perintah berikut.

aws s3 cp sample.dmp s3://<bucket_created_epic_1>/
DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Unduh file dump data ke Amazon RDS

Untuk menyalin file dump sample.dmp dari bucket S3 ke database Amazon RDS for Oracle, jalankan perintah SQL berikut. Dalam contoh ini, sample.dmp file diunduh dari bucket S3 my-s3-integration1 ke direktori Oracle. DATA_PUMP_DIR Pastikan Anda memiliki ruang disk yang cukup dialokasikan ke instance RDS Anda untuk mengakomodasi database dan file ekspor.

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

Perintah sebelumnya mengeluarkan ID tugas. Untuk meninjau status unduhan dengan meninjau data di ID tugas, jalankan perintah berikut.

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

Untuk melihat file dalam DATA_PUMP_DIR direktori, jalankan perintah berikut.

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;
Administrator sistem AWS
TugasDeskripsiKeterampilan yang dibutuhkan

Kembalikan skema dan data ke Amazon RDS.

Untuk mengimpor file dump ke dalam skema sample_schema database, jalankan perintah SQL berikut dari SQL Developer atau 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; /

Untuk melihat file log dari impor, jalankan perintah berikut.

SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));
DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Daftar dan bersihkan file ekspor.

Daftar dan hapus file ekspor di DATA_PUMP_DIR direktori, jalankan perintah berikut.

-- 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');
Administrator sistem AWS

Sumber daya terkait