Bermigrasi dari PostgreSQL di Amazon ke Amazon RDS untuk PostgreSQL menggunakan pglogical EC2 - AWS Prescriptive Guidance

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

Bermigrasi dari PostgreSQL di Amazon ke Amazon RDS untuk PostgreSQL menggunakan pglogical EC2

Rajesh Madiwale, Amazon Web Services

Ringkasan

Pola ini menguraikan langkah-langkah untuk memigrasikan database PostgreSQL (versi 9.5 dan yang lebih baru) dari Amazon Elastic Compute Cloud (Amazon) ke Amazon Relational Database EC2 Service (Amazon RDS) untuk PostgreSQL dengan menggunakan ekstensi pglogical PostgreSQL. Amazon RDS sekarang mendukung ekstensi pglogical untuk PostgreSQL versi 10.

Prasyarat dan batasan

Prasyarat

Versi produk

  • PostgreSQL versi 10 dan yang lebih baru di Amazon RDS, dengan fitur yang didukung di Amazon RDS (lihat PostgreSQL di Amazon RDS dalam dokumentasi AWS). Pola ini diuji dengan memigrasikan PostgreSQL 9.5 ke PostgreSQL versi 10 di Amazon RDS, tetapi juga berlaku untuk versi PostgreSQL yang lebih baru di Amazon RDS.

Arsitektur

Arsitektur migrasi data

Arsitektur migrasi data untuk PostgreSQL di Amazon RDS

Alat

Epik

TugasDeskripsiKeterampilan yang dibutuhkan
Buat instans Amazon RDS PostgreSQL DB.

Siapkan instans PostgreSQL DB di Amazon RDS. Untuk petunjuk, lihat dokumentasi Amazon RDS for PostgreSQL.

DBA
Dapatkan dump skema dari database PostgreSQL sumber dan mengembalikannya ke database PostgreSQL target.
  1. Gunakan utilitas pg_dump dengan -s opsi untuk menghasilkan file skema dari database sumber.

  2. Gunakan utilitas psql dengan -f opsi untuk memuat skema ke dalam database target.

DBA
Nyalakan decoding logis.

Di grup parameter Amazon RDS DB, atur parameter rds.logical_replication statis ke 1. Untuk petunjuk, lihat dokumentasi Amazon RDS.

DBA
Buat ekstensi pglogical pada basis data sumber dan target.
  1. Buat pglogical ekstensi pada database PostgreSQL sumber:

    psql -h <amazon-ec2-endpoint> -d target-dbname -U target-dbuser -c "create extension pglogical;"
  2. Buat pglogical ekstensi pada database PostgreSQL target:

    psql -h <amazon-rds-endpoint> -d source-dbname -U source-dbuser -c "create extension pglogical;"
DBA
Buat penerbit di database PostgreSQL sumber.

Untuk membuat penerbit, jalankan:

psql -d dbname -p 5432 <<EOF SELECT pglogical.create_node( node_name := 'provider1', dsn := 'host=<ec2-endpoint> port=5432 dbname=source-dbname user=source-dbuser' ); EOF
DBA
Buat set replikasi, tambahkan tabel dan urutan.

Untuk membuat kumpulan replikasi pada database PostgreSQL sumber, dan untuk menambahkan tabel dan urutan ke set replikasi, jalankan:

psql -d dbname -p 5432 <<EOF SELECT pglogical.replication_set_add_all_tables('default', '{public}'::text[],synchronize_data := true); EOF
DBA
Buat pelanggan.

Untuk membuat pelanggan pada database PostgreSQL target, jalankan:

psql -h <rds-endpoint> -d target-dbname -U target-dbuser  <<EOF SELECT pglogical.create_node(     node_name := 'subscriber1', dsn := 'host=<rds-endpoint> port=5432 dbname=target-dbname password=postgres user=target-dbuser' ); EOF
DBA
Buat langganan.

Untuk membuat langganan pada database PostgreSQL target, jalankan:

psql -h <rds-endpoint> -d target -U postgres <<EOF SELECT pglogical.create_subscription(  subscription_name := 'subscription1',  replication_sets := array['default'],     provider_dsn := 'host=<ec2-endpoint> port=5432 dbname=<source-dbname> password=<password> user=source-dbuser' );
DBA
TugasDeskripsiKeterampilan yang dibutuhkan
Periksa basis data sumber dan target.

Periksa basis data sumber dan target untuk mengonfirmasi bahwa data berhasil direplikasi. Anda dapat melakukan validasi dasar dengan menggunakan select count(1) dari tabel sumber dan target.

DBA

Sumber daya terkait