Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyiapkan replikasi logis untuk klaster DB Aurora PostgreSQL
Prosedur berikut menunjukkan cara memulai replikasi logis di antara dua klaster DB Aurora PostgreSQL Langkah-langkah mengasumsikan bahwa sumber (penerbit) dan target (pelanggan) memiliki ekstensi pglogical
yang disiapkan seperti yang dijelaskan dalam Menyiapkan ekstensi pglogical.
catatan
node_name
Node pelanggan tidak dapat memulai denganrds
.
Untuk membuat simpul penerbit dan menentukan tabel untuk direplikasi
Langkah-langkah ini mengasumsikan bahwa klaster DB Aurora PostgreSQL memiliki instans penulis dengan basis data yang memiliki satu atau beberapa tabel yang ingin direplikasi ke simpul lain. Anda perlu membuat ulang struktur tabel dari penerbit pada pelanggan, jadi pertama-tama, dapatkan struktur tabel jika perlu. Anda dapat melakukannya dengan menggunakan psq1
metacommand \d
, lalu membuat tabel yang sama pada instans pelanggan. Prosedur berikut membuat tabel contoh pada penerbit (sumber) untuk tujuan demonstrasi.tablename
-
Gunakan
psql
untuk terhubung ke instans yang memiliki tabel yang ingin Anda gunakan sebagai sumber untuk pelanggan.psql --host=
source-instance
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
Jika tidak memiliki tabel yang ingin ditiru, Anda dapat membuat tabel contoh sebagai berikut.
-
Buat contoh tabel menggunakan pernyataan SQL berikut.
CREATE TABLE docs_lab_table (a int PRIMARY KEY);
-
Mengisi tabel dengan data yang dihasilkan menggunakan pernyataan SQL berikut.
INSERT INTO docs_lab_table VALUES (generate_series(1,5000));
INSERT 0 5000
-
Verifikasikan bahwa data ada dalam tabel menggunakan pernyataan SQL berikut.
SELECT count(*) FROM docs_lab_table;
-
-
Identifikasi klaster DB Aurora PostgreSQL ini sebagai simpul penerbit, sebagai berikut.
SELECT pglogical.create_node( node_name := '
docs_lab_provider
', dsn := 'host=source-instance
.aws-region
.rds.amazonaws.com port=5432 dbname=labdb
');create_node ------------- 3410995529 (1 row)
-
Tambahkan tabel yang ingin Anda replikasi ke set replikasi default. Untuk informasi set replikasi selengkapnya, lihat Replication sets
dalam dokumentasi pglogical. SELECT pglogical.replication_set_add_table('default', '
docs_lab_table
', 'true', NULL, NULL);replication_set_add_table --------------------------- t (1 row)
Penyiapan simpul penerbit selesai. Anda sekarang dapat menyiapkan simpul pelanggan untuk menerima informasi terkini dari penerbit.
Untuk menyiapkan simpul pelanggan dan membuat langganan untuk menerima informasi terkini
Langkah-langkah ini mengasumsikan bahwa klaster DB Aurora PostgreSQL telah disiapkan dengan ekstensi pglogical
. Untuk informasi selengkapnya, lihat Menyiapkan ekstensi pglogical.
-
Gunakan
psql
untuk terhubung ke instans yang ingin Anda terima informasi terkini dari penerbit.psql --host=
target-instance
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
-
Pada pelanggan klaster DB Aurora PostgreSQL, , buat tabel yang sama yang ada pada penerbit. Untuk contoh ini, tabelnya adalah
docs_lab_table
. Anda dapat membuat tabel sebagai berikut.CREATE TABLE docs_lab_table (a int PRIMARY KEY);
-
Verifikasi bahwa tabel ini kosong.
SELECT count(*) FROM docs_lab_table;
count ------- 0 (1 row)
-
Identifikasi klaster DB Aurora PostgreSQL ini sebagai simpul pelanggan, sebagai berikut.
SELECT pglogical.create_node( node_name := '
docs_lab_target
', dsn := 'host=target-instance
.aws-region
.rds.amazonaws.com port=5432 sslmode=require dbname=labdb
user=postgres
password=********
');create_node ------------- 2182738256 (1 row)
-
Buat langganan.
SELECT pglogical.create_subscription( subscription_name := 'docs_lab_subscription', provider_dsn := 'host=
source-instance
.aws-region
.rds.amazonaws.com port=5432 sslmode=require dbname=labdb
user=postgres
password=*******
', replication_sets := ARRAY['default'], synchronize_data := true, forward_origins := '{}' );create_subscription --------------------- 1038357190 (1 row)
Saat Anda menyelesaikan langkah ini, data dari tabel pada penerbit akan dibuat dalam tabel pada pelanggan. Anda dapat memverifikasi bahwa tabel telah dibuat menggunakan query SQL berikut.
SELECT count(*) FROM docs_lab_table;
count ------- 5000 (1 row)
Mulai dari titik ini, perubahan yang dilakukan pada tabel pada penerbit direplikasi ke tabel pada pelanggan.