Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dengan dan menggunakan dan AWS SCTAWS DMSAWS CLICloudFormation - AWS Prescriptive Guidance

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

Migrasikan Amazon RDS for Oracle ke Amazon RDS untuk PostgreSQL dengan dan menggunakan dan AWS SCTAWS DMSAWS CLICloudFormation

Pinesh Singal, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara memigrasikan Amazon Relational Database Service (Amazon RDS) multi-terabyte untuk instans Oracle DB ke instans Amazon RDS for PostgreSQL DB dengan menggunakan (). AWS Command Line Interface AWS CLI Pendekatan ini memberikan waktu henti minimal dan tidak perlu masuk ke. Konsol Manajemen AWS

Pola ini membantu menghindari konfigurasi manual dan migrasi individual dengan menggunakan konsol AWS Schema Conversion Tool (AWS SCT) dan AWS Database Migration Service (AWS DMS). Solusinya menyiapkan konfigurasi satu kali untuk beberapa database dan melakukan migrasi dengan menggunakan AWS SCT dan AWS DMS di file. AWS CLI

Pola ini digunakan AWS SCT untuk mengonversi objek skema database dari Amazon RDS for Oracle ke Amazon RDS for PostgreSQL, dan kemudian digunakan untuk memigrasikan data. AWS DMS Menggunakan skrip Python di AWS CLI, Anda membuat AWS SCT objek dan AWS DMS tugas dengan template. CloudFormation

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS.

  • Instans Amazon RDS for Oracle DB yang ada.

  • Amazon RDS yang ada untuk instans DB Amazon RDS for PostgreSQL. 

  • Instans Amazon Elastic Compute Cloud (Amazon EC2) atau mesin lokal dengan OS Windows atau Linux untuk menjalankan skrip.

  • Pemahaman tentang jenis tugas AWS DMS migrasi berikut:full-load,cdc,full-load-and-cdc.  Untuk informasi selengkapnya, lihat Membuat tugas dalam AWS DMS dokumentasi. 

  • AWS SCT, diinstal dan dikonfigurasi dengan driver Java Database Connectivity (JDBC) untuk mesin database Oracle dan PostgreSQL. Untuk informasi selengkapnya, lihat Menginstal dan mengonfigurasi AWS SCT dalam AWS SCT dokumentasi. 

  • AWSSchemaConversionToolBatch.jarFile dari AWS SCT folder yang diinstal, disalin ke direktori kerja Anda.

  • cli-sct-dms-cft.zipFile (terlampir), diunduh dan diekstraksi di direktori kerja Anda.

  • Versi mesin contoh AWS DMS replikasi terbaru. Untuk informasi selengkapnya, lihat Bagaimana cara membuat instance AWS DMS replikasi dalam AWS Dukungan dokumentasi dan catatan AWS DMS rilis

  • AWS CLI versi 2, diinstal dan dikonfigurasi dengan ID kunci akses Anda, kunci akses rahasia, dan Wilayah AWS nama default untuk EC2 instance atau OS tempat skrip dijalankan. Untuk informasi selengkapnya, lihat Menginstal atau memperbarui ke versi terbaru AWS CLI dan Mengkonfigurasi pengaturan untuk AWS CLI dokumentasi. AWS CLI 

  • Keakraban dengan CloudFormation template. Untuk informasi selengkapnya, lihat Cara CloudFormation kerja dalam CloudFormation dokumentasi. 

  • Python versi 3, diinstal dan dikonfigurasi pada EC2 instance atau OS tempat skrip dijalankan. Untuk informasi selengkapnya, lihat dokumentasi Python

Batasan

  • Persyaratan minimum untuk instans Amazon RDS for Oracle DB sumber Anda adalah: 

    • Oracle versi 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0), dan 19c (19.0.0.0) untuk edisi Enterprise, Standard, Standard One, dan Standard Two.

    • Meskipun Amazon RDS mendukung Oracle 18c (18.0.0.0), versi ini berada di jalur penghentian karena Oracle tidak lagi menyediakan tambalan untuk 18c setelah tanggal. end-of-support Untuk informasi selengkapnya, lihat Amazon RDS for Oracle di dokumentasi Amazon RDS.

    • Amazon RDS for Oracle 11g tidak lagi didukung.

  • Persyaratan minimum untuk instans Amazon RDS for PostgreSQL DB target Anda adalah: 

    • PostgreSQL versi 9 (9.5 dan 9.6), 10.x, 11.x, 12.x, dan 13.x

Versi produk

  • Amazon RDS for Oracle DB instans versi 12.1.0.2 dan yang lebih baru

  • Amazon RDS untuk instans PostgreSQL DB versi 11.5 dan yang lebih baru

  • AWS CLI versi 2 

  • Versi terbaru dari AWS SCT

  • Versi terbaru Python 3

Arsitektur

Tumpukan teknologi sumber

  • Amazon RDS for Oracle

Tumpukan teknologi target

  • Amazon RDS for PostgreSQL

Arsitektur sumber dan target

Diagram berikut menunjukkan migrasi instans Amazon RDS for Oracle DB ke instans Amazon RDS for PostgreSQL DB menggunakan skrip Python. AWS DMS

Migrasi RDS untuk instans Oracle DB ke RDS untuk instans PostgreSQL DB menggunakan AWS DMS dan Python.

Diagram menunjukkan alur kerja migrasi berikut:

  1. Skrip Python digunakan AWS SCT untuk terhubung ke sumber dan menargetkan instance DB.

  2. Pengguna mulai AWS SCT dengan skrip Python, mengonversi kode Oracle ke kode PostgreSQL, dan menjalankannya pada instance DB target.

  3. Skrip Python membuat tugas AWS DMS replikasi untuk instance DB sumber dan target.

  4. Pengguna menyebarkan skrip Python untuk memulai AWS DMS tugas dan kemudian menghentikan tugas setelah migrasi data selesai.

Otomatisasi dan skala

Anda dapat mengotomatiskan migrasi ini dengan menambahkan parameter dan perubahan terkait keamanan ke skrip Python Anda, untuk menyediakan fungsionalitas tambahan. 

Alat

  • AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.

  • CloudFormationmembantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah. Pola ini mengkonversi file .csv input ke file .json input dengan menggunakan script Python. .jsonFile ini digunakan dalam AWS CLI perintah untuk membuat CloudFormation tumpukan yang membuat beberapa tugas AWS DMS replikasi dengan Amazon Resource Names (ARNs), tipe migrasi, pengaturan tugas, dan pemetaan tabel.

  • AWS Database Migration Service (AWS DMS) membantu Anda memigrasikan penyimpanan data ke AWS Cloud atau di antara kombinasi pengaturan cloud dan lokal. Pola ini digunakan AWS DMS untuk membuat, memulai, dan menghentikan tugas dengan skrip Python yang berjalan pada baris perintah, dan untuk membuat template. CloudFormation

  • AWS Schema Conversion Tool (AWS SCT) mendukung migrasi database heterogen dengan secara otomatis mengonversi skema basis data sumber dan sebagian besar kode kustom ke format yang kompatibel dengan database target. Pola ini membutuhkan AWSSchemaConversionToolBatch.jar file dari AWS SCT direktori yang diinstal.

Kode

cli-sct-dms-cft.zipFile (terlampir) berisi kode sumber lengkap untuk pola ini.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

AWS SCT Konfigurasikan untuk menjalankan dari file AWS CLI.

  1. Konfigurasikan detail konfigurasi lingkungan sumber dan target dalam database_migration.txt file dengan menggunakan format berikut:

    #source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432
  2. Ubah parameter AWS SCT konfigurasi sesuai dengan kebutuhan Anda dalam file berikut:project_settings.xml,Oracle_PG_Test_Batch.xml, danORACLE-orcl-to-POSTGRESQL.xml.

DBA

Jalankan run_aws_sct.py skrip Python.

Jalankan skrip run_aws_sct.py Python dengan menggunakan perintah berikut:

$ python run_aws_sct.py database_migration.txt

Script Python mengkonversi objek database dari Oracle ke PostgreSQL dan membuat file SQL dalam format PostgreSQL. Skrip ini juga membuat file PDFDatabase migration assessment report, yang memberi Anda rekomendasi terperinci dan statistik konversi untuk objek database.

DBA

Buat objek di Amazon RDS untuk PostgreSQL.

  1. Secara manual memodifikasi file SQL yang dihasilkan oleh AWS SCT, jika diperlukan.

  2. Jalankan file SQL dan buat objek di Amazon RDS for PostgreSQL DB instance.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Buat contoh AWS DMS replikasi.

Masuk ke Konsol Manajemen AWS, buka AWS DMS konsol, dan buat instance replikasi yang dikonfigurasi sesuai dengan kebutuhan Anda.

Untuk informasi selengkapnya, lihat Membuat instance replikasi dalam AWS DMS dokumentasi dan Bagaimana cara membuat instance AWS DMS replikasi dalam dokumentasi. AWS Dukungan

DBA

Buat titik akhir sumber.

Di AWS DMS konsol, pilih Endpoint dan kemudian buat titik akhir sumber untuk database Oracle sesuai dengan kebutuhan Anda. 

catatan

Atribut koneksi tambahan harus numberDataTypeScale dengan -2 nilai.

Untuk informasi selengkapnya, lihat Membuat titik akhir sumber dan target dalam AWS DMS dokumentasi.

DBA

Buat titik akhir target.

Di AWS DMS konsol, pilih Endpoint dan kemudian buat titik akhir target untuk database PostgreSQL sesuai dengan kebutuhan Anda.  

Untuk informasi selengkapnya, lihat Membuat titik akhir sumber dan target dalam AWS DMS dokumentasi.

DevOps insinyur

Konfigurasikan detail AWS DMS replikasi untuk dijalankan dari file. AWS CLI

Konfigurasikan titik akhir AWS DMS sumber dan target serta detail replikasi dalam dms-arn-list.txt file dengan ARN titik akhir sumber, ARN titik akhir target, dan ARN instance replikasi dengan menggunakan format berikut:

#sourceARN,targetARN,repARN arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5 arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G
DBA

Jalankan skrip dms-create-task.py Python untuk membuat tugas. AWS DMS

  1. Jalankan skrip dms-create-task.py Python dengan menggunakan perintah berikut:

    $ python dms-create-task.py database_migration.txt dms-arn-list.txt <cft-stack-name> <migration-type>

    di mana:

    • database_migration.txtadalah file teks migrasi database.

    • dms-arn-list.txtadalah daftar ARN untuk. AWS DMS

    • <cft-stack-name>adalah nama CloudFormation tumpukan yang ditentukan pengguna.

    • <migration-type>adalahfull-load,cdc, ataufull-load-and-cdc.

  2. Bergantung pada jenis migrasi, Anda dapat menggunakan perintah berikut untuk membuat tiga jenis AWS DMS tugas:

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack cdc

    • $ python dms-create-task.py database_migration.txt dms-arn-list.txt dms-cli-cft-stack full-load-and-cdc

DBA

Verifikasi bahwa AWS DMS tugas sudah siap.

Di AWS DMS konsol, periksa apakah AWS DMS tugas Anda dalam Ready status di bagian Status.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Mulai AWS DMS tugas.

Jalankan skrip dms-start-task.py Python dengan menggunakan perintah berikut:

$ python dms-start-task.py start '<cdc-start-datetime>'
catatan

Tanggal dan waktu mulai harus dalam 'YYYY-MM-DDTHH:MI:SS' format 'DD-MON-YYYY' atau (misalnya, '01-Dec-2019' atau'2018-03-08T12:12:12').

Anda dapat meninjau status AWS DMS tugas di tab Statistik tabel di halaman Tugas AWS DMS konsol.

DBA

Validasi data.

  1. Setelah migrasi beban penuh selesai, tugas terus berjalan untuk CDC.

  2. Ketika CDC selesai atau tidak ada perubahan lagi yang perlu dimigrasikan, tinjau dan validasi hasil tugas migrasi dan data di database Oracle dan PostgreSQL Anda.

    Anda dapat memvalidasi data dengan memeriksa kolom status dan hitungan (Validation stateValidation pendingValidation failed,Validation suspended,,, danValidation details) di tab Statistik tabel tugas migrasi database Anda di halaman Tugas AWS DMS konsol. 

Untuk informasi selengkapnya, lihat validasi AWS DMS data dalam AWS DMS dokumentasi.

DBA

Hentikan AWS DMS tugas.

Jalankan skrip Python dengan menggunakan perintah berikut:

$ python dms-start-task.py stop
catatan

AWS DMS tugas mungkin berhenti dengan failed status, tergantung pada status validasi. Untuk informasi lebih lanjut, lihat bagian selanjutnya.

DBA

Pemecahan Masalah

IsuSolusi

AWS SCT koneksi uji sumber dan target gagal.

Konfigurasikan versi driver JDBC dan aturan masuk grup keamanan VPC untuk menerima lalu lintas masuk.

Uji coba sumber atau target titik akhir gagal.

Periksa apakah pengaturan titik akhir dan contoh replikasi berada dalam Available status. Periksa apakah status koneksi titik akhir adalahSuccessful

Untuk informasi selengkapnya, lihat Bagaimana cara memecahkan masalah kegagalan konektivitas titik akhir AWS DMS dalam dokumentasi. AWS Dukungan

Proses beban penuh gagal.

Periksa apakah basis data sumber dan target memiliki tipe dan ukuran data yang cocok. 

Untuk informasi selengkapnya, lihat Memecahkan masalah tugas migrasi AWS DMS dalam dokumentasi. AWS DMS

Anda menemukan kesalahan menjalankan validasi.

Periksa apakah tabel memiliki kunci primer karena tabel kunci non-primer tidak divalidasi.

Jika tabel memiliki kunci utama dan kesalahan, periksa apakah atribut koneksi tambahan di titik akhir sumber memilikinumberDataTypeScale=-2.

Untuk informasi selengkapnya, lihat Pengaturan titik akhir saat menggunakan Oracle sebagai sumber untuk AWS DMSOracleSettings, dan Pemecahan Masalah dalam dokumentasi. AWS DMS

Sumber daya terkait

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip