全部产品
Search
文档中心

ApsaraDB RDS:Gunakan ekstensi pglogical

更新时间:Jun 25, 2025

Topik ini menjelaskan cara menggunakan ekstensi pglogical dari PostgreSQL untuk mereplikasi data dari instance ApsaraDB RDS for PostgreSQL. Ekstensi ini menggunakan pola publikasi/berlangganan untuk mengimplementasikan replikasi aliran logis.

Prasyarat

  • Instance RDS Anda harus menjalankan PostgreSQL 10 atau yang lebih baru.

  • Instance RDS Anda harus menjalankan versi mesin minor 20230830 atau yang lebih baru. Jika instance RDS Anda menjalankan PostgreSQL 17, versi mesin minornya haruslah 20241030 atau yang lebih baru.

    Penting

    Ekstensi ini didukung pada versi mesin minor sebelum 20230830. Namun, ApsaraDB RDS berencana mengoptimalkan ekstensi rentan dalam pembaruan versi mesin minor demi manajemen ekstensi yang terstandarisasi dan peningkatan keamanan. Oleh karena itu, Anda tidak dapat membuat ekstensi ini untuk instance RDS yang menjalankan versi mesin minor sebelum 20230830. Untuk informasi lebih lanjut, lihat [Perubahan Produk/Perubahan Fitur] Batasan pembuatan ekstensi untuk instance ApsaraDB RDS for PostgreSQL.

    • Jika Anda sudah membuat ekstensi ini untuk instance RDS yang menjalankan versi mesin minor sebelum 20230830, Anda dapat terus menggunakannya.

    • Jika Anda membuat ekstensi ini untuk pertama kalinya atau perlu membuat ulang ekstensi untuk instance RDS Anda, Anda harus memperbarui versi mesin minor instance RDS ke versi terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.

  • pglogical harus ditambahkan ke nilai parameter shared_preload_libraries instance RDS Anda.

    Untuk informasi lebih lanjut tentang cara menambahkan pglogical ke nilai parameter shared_preload_libraries, lihat Ubah parameter instance ApsaraDB RDS for PostgreSQL.

    Catatan

    Setelah Anda memodifikasi nilai parameter shared_preload_libraries dan menerapkan modifikasi, instance RDS Anda akan segera restart. Restart ini menyebabkan aplikasi Anda terputus dari instance RDS. Lanjutkan dengan hati-hati. Sebelum restart dipicu, rencanakan bisnis Anda dan pastikan aplikasi Anda dikonfigurasi untuk secara otomatis tersambung kembali ke database.

Informasi latar belakang

Ekstensi pglogical dari PostgreSQL adalah metode yang sangat efisien untuk mereplikasi data sebagai alternatif dari replikasi fisik dengan menggunakan pola publikasi/berlangganan. Ekstensi pglogical memberikan kecepatan replikasi yang lebih tinggi dibandingkan Slony, Bucardo, dan Londiste serta mendukung peningkatan lintas versi. Ekstensi ini cocok untuk skenario berikut:

  • Peningkatan versi mesin utama

  • Replikasi semua data dari database pada instance RDS Anda

  • Replikasi tabel, baris, dan kolom tertentu dengan menggunakan set replikasi

  • Agregasi dan penggabungan data dari beberapa server hulu

Gunakan ekstensi

  • Aktifkan ekstensi pglogical.

    CREATE EXTENSION pglogical;
  • Nonaktifkan ekstensi pglogical.

    DROP EXTENSION pglogical;

Konfigurasikan replikasi aliran logis

  1. Buat node penerbit pada penerbit.

    Catatan

    Anda harus mengatur parameter host ke 127.0.0.1 untuk node penerbit. Anda dapat mengeksekusi pernyataan SHOW PORT; untuk mendapatkan nilai parameter port untuk node penerbit.

    SELECT pglogical.create_node(
        node_name := 'provider',
        dsn := 'host=127.0.0.1 port=<Nomor Port> dbname=test user=provider_user password=provider_pass'
    );
  2. Konfigurasikan set replikasi.

    Tambahkan semua tabel dalam skema public ke set replikasi default.

    SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
    Catatan
    • Set replikasi digunakan untuk mereplikasi hanya tabel yang ditentukan dan hanya perubahan tertentu pada tabel-tabel tersebut dari penerbit ke pelanggan.

    • Set replikasi default digunakan untuk mereplikasi semua tabel dan semua perubahan pada tabel-tabel tersebut dari penerbit ke pelanggan. Untuk informasi lebih lanjut, lihat dokumentasi pglogical.

  3. Buat node pelanggan pada pelanggan.

    Catatan

    Anda harus mengatur parameter host ke 127.0.0.1 untuk node pelanggan. Anda dapat mengeksekusi pernyataan SHOW PORT; untuk mendapatkan nilai parameter port untuk node pelanggan.

    SELECT pglogical.create_node(
        node_name := 'subscriber',
        dsn := 'host=127.0.0.1 port=<Nomor Port> dbname=test user=subscriber_user password=subscriber_pass'
    );
  4. Buat langganan pada pelanggan.

    Catatan
    • Parameter host harus diatur ke Titik akhir internal dari penerbit, seperti pgm-****.pg.rds.aliyuncs.com. Parameter port harus diatur ke Nomor port internal dari penerbit.

    • Anda dapat melihat Titik akhir internal dan Nomor port internal dari instance RDS di konsol ApsaraDB RDS. Untuk informasi lebih lanjut, lihat Lihat dan ubah titik akhir dan nomor port instance ApsaraDB RDS for PostgreSQL.

    SELECT pglogical.create_subscription(
        subscription_name := 'subscription',
        provider_dsn := 'host=<Titik akhir internal penyedia> port=<Nomor port internal penyedia> dbname=test user=provider_user password=provider_pass'
    );

    Setelah langganan dibuat, proses sinkronisasi dan replikasi dimulai di latar belakang.

Referensi

Untuk informasi lebih lanjut, lihat dokumentasi pglogical.