Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS - AWS Prescriptive Guidance

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

Migrasikan tabel partisi Oracle ke PostgreSQL menggunakan AWS DMS

Saurav Mishra dan Eduardo Valentim, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara mempercepat pemuatan tabel yang dipartisi dari Oracle ke PostgreSQL dengan menggunakan AWS Database Migration Service (AWS DMS), yang tidak mendukung partisi asli. Basis data PostgreSQL target dapat diinstal di Amazon Elastic Compute Cloud (Amazon), atau dapat berupa Amazon Relational Database Service ( EC2Amazon RDS) untuk PostgreSQL atau instans DB Edisi Amazon Aurora PostgreSQL yang kompatibel. 

Mengunggah tabel yang dipartisi mencakup langkah-langkah berikut:

  1. Buat tabel induk yang mirip dengan tabel partisi Oracle, tetapi jangan sertakan partisi apa pun.

  2. Buat tabel anak yang akan mewarisi dari tabel induk yang Anda buat di langkah 1.

  3. Buat fungsi prosedur dan pemicu untuk menangani sisipan di tabel induk.

Namun, karena pemicu diaktifkan untuk setiap sisipan, beban awal menggunakan AWS DMS bisa sangat lambat.

Untuk mempercepat pemuatan awal dari Oracle ke PostgreSQL 9.0, pola ini membuat tugas AWS DMS terpisah untuk setiap partisi dan memuat tabel turunan yang sesuai. Anda kemudian membuat pemicu selama cutover. 

PostgreSQL versi 10 mendukung partisi asli. Namun, Anda mungkin memutuskan untuk menggunakan partisi yang diwariskan dalam beberapa kasus. Untuk informasi selengkapnya, lihat bagian Informasi tambahan.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Database Oracle sumber dengan tabel yang dipartisi

  • Database PostgreSQL di AWS

Versi produk

  • PostgreSQL 9.0

Arsitektur

Tumpukan teknologi sumber

  • Tabel yang dipartisi di Oracle

Tumpukan teknologi target

  • Tabel yang dipartisi di PostgreSQL (di Amazon, Amazon RDS untuk PostgreSQL, atau Aurora EC2 PostgreSQL)

Arsitektur target

Data tabel yang dipartisi di Oracle pindah ke tugas AWS DMS untuk setiap partisi, lalu ke PostgreSQL.

Alat

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat tabel di PostgreSQL.

Buat tabel induk dan anak yang sesuai di PostgreSQL dengan kondisi pemeriksaan yang diperlukan untuk partisi.

DBA

Buat tugas AWS DMS untuk setiap partisi.

Sertakan kondisi filter partisi dalam tugas AWS DMS. Petakan partisi ke tabel anak PostgreSQL yang sesuai.

DBA

Jalankan tugas AWS DMS menggunakan full load dan change data capture (CDC).

Pastikan bahwa StopTaskCachedChangesApplied parameter diatur ke true dan StopTaskCachedChangesNotApplied parameter diatur kefalse.

DBA
TugasDeskripsiKeterampilan yang dibutuhkan

Hentikan tugas replikasi.

Sebelum Anda menghentikan tugas, konfirmasikan bahwa sumber dan tujuan sinkron.

DBA

Buat pemicu pada tabel induk.

Karena tabel induk akan menerima semua perintah insert dan update, buat pemicu yang akan merutekan perintah ini ke tabel turunan masing-masing berdasarkan kondisi partisi.

DBA

Sumber daya terkait

Informasi tambahan

Meskipun PostgreSQL versi 10 mendukung partisi asli, Anda mungkin memutuskan untuk menggunakan partisi yang diwariskan untuk kasus penggunaan berikut:

  • Partisi memberlakukan aturan bahwa semua partisi harus memiliki kumpulan kolom yang sama dengan induknya, tetapi pewarisan tabel mendukung anak-anak yang memiliki kolom tambahan.

  • Warisan tabel mendukung beberapa pewarisan.

  • Partisi deklaratif hanya mendukung partisi daftar dan rentang. Dengan pewarisan tabel, Anda dapat membagi data sesuai keinginan. Namun, jika pengecualian kendala tidak dapat memangkas partisi secara efektif, kinerja kueri akan terganggu.

  • Beberapa operasi membutuhkan kunci yang lebih kuat saat menggunakan partisi deklaratif daripada saat menggunakan pewarisan tabel. Misalnya, menambahkan atau menghapus partisi ke atau dari tabel yang dipartisi memerlukan ACCESS EXCLUSIVE kunci pada tabel induk, sedangkan SHARE UPDATE EXCLUSIVE kunci cukup untuk pewarisan reguler.

Saat Anda menggunakan partisi pekerjaan terpisah, Anda juga dapat memuat ulang partisi jika ada masalah validasi AWS DMS. Untuk kontrol kinerja dan replikasi yang lebih baik, jalankan tugas pada instance replikasi terpisah.