Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi - AWS Prescriptive Guidance

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

Migrasikan fungsi asli Oracle ke PostgreSQL menggunakan ekstensi

Pinesh Singal, Amazon Web Services

Ringkasan

Pola migrasi ini memberikan step-by-step panduan untuk memigrasikan Amazon Relational Database Service (Amazon RDS) untuk instance database Oracle ke Amazon RDS for PostgreSQL atau database Amazon Aurora PostgreSQL Compatible Edition dengan memodifikasi dan ekstensi ke kode bawaan bawaan PostgreSQL () bawaan bawaan. aws_oracle_ext orafce psql Ini akan menghemat waktu pemrosesan.

Pola ini menggambarkan strategi migrasi manual offline tanpa downtime untuk database sumber Oracle multi-terabyte dengan jumlah transaksi yang tinggi.

Proses migrasi menggunakan AWS Schema Conversion Tool (AWS SCT) dengan aws_oracle_ext ekstensi orafce dan untuk mengonversi skema database Amazon RDS for Oracle ke Amazon RDS for PostgreSQL atau skema database yang kompatibel dengan Aurora PostgreSQL. Kemudian kode secara manual diubah menjadi PostgreSQL didukung kode bawaan asli. psql Ini karena ekstensi memanggil pemrosesan kode dampak pada server database PostgreSQL, dan tidak semua kode ekstensi sepenuhnya dikeluhkan atau kompatibel dengan kode PostgreSQL.

Pola ini terutama berfokus pada migrasi kode SQL secara manual menggunakan AWS SCT dan ekstensi dan. aws_oracle_ext orafce Anda mengonversi ekstensi yang sudah digunakan menjadi bawaan psql PostgreSQL () bawaan bawaan. Kemudian Anda menghapus semua referensi ke ekstensi dan mengonversi kode yang sesuai.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif 

  • Sistem operasi (Windows atau Mac) atau EC2 instans Amazon (aktif dan berjalan) 

  • Orafce

Batasan

Tidak semua fungsi Oracle menggunakan aws_oracle_ext atau orafce ekstensi dapat dikonversi ke fungsi PostgreSQL asli. Mungkin perlu pengerjaan ulang manual untuk mengompilasinya dengan pustaka PostgreSQL.

Salah satu kelemahan menggunakan ekstensi AWS SCT adalah kinerjanya yang lambat dalam menjalankan dan mengambil hasilnya. Biayanya dapat dipahami dari rencana PostgreSQL EXPLORE sederhana (rencana eksekusi pernyataan) pada migrasi fungsi SYSDATE Oracle ke fungsi NOW() PostgreSQL antara ketiga aws_oracle_ext kode orafce (,, dan default)psql, seperti yang dijelaskan di bagian pemeriksaan perbandingan Kinerja dalam dokumen terlampir.

Versi produk

  • Sumber: Amazon RDS for Oracle database 10.2 dan yang lebih baru (untuk 10.x), 11g (11.2.0.3.v1 dan yang lebih baru) dan hingga 12.2, 18c, dan 19c (dan yang lebih baru) untuk Enterprise Edition, Standard Edition, Standard Edition 1, dan Standard Edition 2

  • Target: Amazon RDS untuk database yang kompatibel dengan PostgreSQL atau Aurora PostgreSQL 9.4 dan yang lebih baru (untuk 9.x), 10.x, 11.x, 12.x, 13.x, dan 14.x (dan yang lebih baru)

  • AWS SCT: Versi terbaru (pola ini diuji dengan 1.0.632)

  • Orafce: Versi terbaru (pola ini diuji dengan 3.9.0)

Arsitektur

Tumpukan teknologi sumber

  • Instans database Amazon RDS for Oracle dengan versi 12.1.0.2.v18

Tumpukan teknologi target

  • Instans database yang kompatibel dengan Amazon RDS for PostgreSQL atau Aurora PostgreSQL dengan versi 11.5

Arsitektur migrasi database

Diagram berikut merupakan arsitektur migrasi database antara sumber Oracle dan database PostgreSQL target. Arsitekturnya melibatkan AWS Cloud, virtual private cloud (VPC), Availability Zones, subnet pribadi, database Amazon RDS for Oracle, AWS SCT, Amazon RDS untuk PostgreSQL atau database yang kompatibel dengan Aurora PostgreSQL, ekstensi untuk file Oracle (dan), dan bahasa kueri terstruktur (SQL). aws_oracle_ext orafce

Prosesnya dijelaskan dalam daftar berikut.
  1. Luncurkan Amazon RDS for Oracle DB instance (sumber DB).

  2. Gunakan AWS SCT dengan paket orafce ekstensi aws_oracle_ext dan untuk mengonversi kode sumber dari Oracle ke PostreSQL.

  3. Konversi menghasilkan file.sql bermigrasi yang didukung PostgreSQL.

  4. Secara manual mengonversi kode ekstensi Oracle yang tidak dikonversi ke kode PostgreSQL (). psql

  5. Konversi manual menghasilkan file.sql dikonversi yang didukung PostgreSQL.

  6. Jalankan file.sql ini di Amazon RDS untuk instans DB Amazon RDS for PostgreSQL (target DB).

Alat

Alat

Layanan AWS

  • AWS SCT - AWS Schema Conversion Tool (AWS SCT) mengonversi skema database Anda yang ada dari satu mesin database ke mesin database lainnya. Anda dapat mengonversi skema Pemrosesan Transaksional Online (OLTP) relasional, atau skema gudang data. Skema konversi Anda cocok untuk instans Amazon RDS for MySQL DB, kluster Amazon Aurora DB, instans Amazon RDS for PostgreSQL DB, atau cluster Amazon Redshift. Skema yang dikonversi juga dapat digunakan dengan database pada EC2 instans Amazon atau disimpan sebagai data dalam bucket Amazon S3.

    AWS SCT menyediakan antarmuka pengguna berbasis proyek untuk secara otomatis mengonversi skema database database sumber Anda menjadi format yang kompatibel dengan instans Amazon RDS target Anda. 

    Anda dapat menggunakan AWS SCT untuk melakukan migrasi dari database sumber Oracle ke salah satu target yang tercantum sebelumnya. Menggunakan AWS SCT, Anda dapat mengekspor definisi objek database sumber seperti skema, tampilan, prosedur tersimpan, dan fungsi. 

    Anda dapat menggunakan AWS SCT untuk mengonversi data dari Oracle ke Amazon RDS untuk PostgreSQL atau Amazon Aurora PostgreSQL Edisi yang kompatibel dengan Amazon Aurora. 

    Dalam pola ini, Anda menggunakan AWS SCT untuk mengonversi dan memigrasikan kode Oracle ke PostgreSQL menggunakan ekstensi aws_oracle_ext danorafce, dan memigrasikan kode ekstensi secara manual ke kode bawaan default atau asli. psql

  • Paket ekstensi AWS SCT adalah modul add-on yang mengemulasi fungsi yang ada dalam database sumber yang diperlukan saat mengonversi objek ke database target. Sebelum Anda dapat menginstal paket ekstensi AWS SCT, Anda perlu mengonversi skema database Anda.

    Saat Anda mengonversi skema database atau gudang data, AWS SCT menambahkan skema tambahan ke basis data target Anda. Skema ini mengimplementasikan fungsi sistem SQL dari database sumber yang diperlukan saat menulis skema yang dikonversi ke database target Anda. Skema tambahan ini disebut skema paket ekstensi.

    Skema paket ekstensi untuk database OLTP diberi nama sesuai dengan database sumber. Untuk database Oracle, skema paket ekstensi adalah. AWS_ORACLE_EXT

Alat-alat lainnya

  • Orafce - Orafce adalah modul yang mengimplementasikan fungsi, tipe data, dan paket yang kompatibel dengan Oracle. Ini adalah alat sumber terbuka dengan lisensi Berkeley Source Distribution (BSD) sehingga siapa pun dapat menggunakannya. orafceModul ini berguna untuk migrasi dari Oracle ke PostgreSQL karena memiliki banyak fungsi Oracle yang diimplementasikan di PostgreSQL.

Kode

Untuk daftar semua kode yang umum digunakan dan dimigrasi dari Oracle ke PostgreSQL guna menghindari penggunaan kode ekstensi AWS SCT, lihat dokumen terlampir.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat instance database Oracle.

Buat instance database yang kompatibel dengan Amazon RDS for Oracle atau Aurora PostgreSQL dari konsol Amazon RDS.

AWS Umum, DBA

Konfigurasikan grup keamanan.

Konfigurasikan grup keamanan masuk dan keluar.

AWS Umum

Buat database.

Buat database Oracle dengan pengguna dan skema yang dibutuhkan.

AWS Umum, DBA

Buat objek.

Buat objek dan masukkan data dalam skema.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Buat instance database PostgreSQL.

Buat instance database Amazon RDS for PostgreSQL atau Amazon Aurora PostgreSQL dari konsol Amazon RDS.

AWS Umum, DBA

Konfigurasikan grup keamanan.

Konfigurasikan grup keamanan masuk dan keluar.

AWS Umum

Buat database.

Buat database PostgreSQL dengan pengguna dan skema yang dibutuhkan.

AWS Umum, DBA

Validasi ekstensi.

Pastikan bahwa aws_oracle_ext dan diinstal dan orafce dikonfigurasi dengan benar di database PostgreSQL.

DBA

Verifikasi bahwa database PostgreSQL tersedia.

Pastikan database PostgreSQL aktif dan berjalan.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Instal AWS SCT.

Instal AWS SCT versi terbaru.

DBA

Konfigurasikan AWS SCT.

Konfigurasikan AWS SCT dengan driver Java Database Connectivity (JDBC) untuk Oracle () ojdbc8.jar dan PostgreSQL (). postgresql-42.2.5.jar

DBA

Aktifkan paket atau templat ekstensi AWS SCT.

Di bawah AWS SCT Project Settings, aktifkan implementasi fungsi bawaan dengan aws_oracle_ext dan orafce ekstensi untuk skema database Oracle.

DBA

Konversi skema.

Di AWS SCT, pilih Konversi Skema untuk mengonversi skema dari Oracle ke PostgreSQL dan buat file.sql.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Konversi kode secara manual.

Secara manual mengonversi setiap baris kode yang didukung ekstensi menjadi kode bawaan psql default, seperti yang dijelaskan dalam dokumen terlampir. Misalnya, ubah AWS_ORACLE_EXT.SYSDATE() atau ORACLE.SYSDATE() keNOW().

DBA

Validasi kode

(Opsional) Validasi setiap baris kode dengan menjalankannya sementara di database PostgreSQL.

DBA

Buat objek dalam database PostgreSQL.

Untuk membuat objek dalam database PostgreSQL, jalankan file.sql yang dihasilkan oleh AWS SCT dan dimodifikasi dalam dua langkah sebelumnya.

DBA

Sumber daya terkait

Informasi tambahan

Untuk informasi lebih lanjut, ikuti perintah terperinci, dengan sintaks dan contoh, untuk mengonversi kode secara manual dalam dokumen terlampir.

Lampiran

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