Tentang ekstensi pglogical

Pilih versi dokumentasi:

Halaman ini memberikan ringkasan tentang ekstensi pglogical, manfaat, dan batasannya.

Ringkasan

Ekstensi pglogical adalah alat replikasi logis yang tangguh dan fleksibel yang dirancang untuk PostgreSQL, dan juga mendukung ketersediaan tinggi (HA) dan disaster recovery (DR).

Replikasi biner standar, yang umumnya dikenal sebagai replikasi fisik, mereplikasi perubahan di tingkat sistem file dan blok, sehingga menghasilkan mirror fisik di sistem target. Meskipun replikasi fisik bersifat andal dan melindungi seluruh cluster database, replikasi ini hanya bersifat searah dan memerlukan akses ke file data database yang mendasarinya dan file write-ahead log (WAL).

Sedangkan ekstensi pglogical mengekstrak perubahan SQL dari database penyedia dan mereplikasinya, lalu memutarnya ulang terhadap satu atau beberapa database pelanggan. Replikasi ini dikenal sebagai replikasi logis.

Dengan menggunakan ekstensi pglogical, Anda dapat melakukan hal berikut:

  • Mereplikasi data di antara beberapa database AlloyDB Omni.
  • Mereplikasi data antara AlloyDB Omni dan Google Cloud AlloyDB.
  • Mereplikasi data antara AlloyDB Omni dan distribusi PostgreSQL lainnya yang mencakup banyak layanan cloud pihak ketiga.

Manfaat

Replikasi logis dengan ekstensi pglogical menawarkan manfaat berikut:

  • Replikasi selektif: memberikan fleksibilitas untuk menetapkan filter dan aturan guna menentukan data yang ingin Anda replikasi dan tujuannya. Anda dapat memilih tabel mana yang disertakan dan cara menangani tabel baru, baik disertakan maupun tidak. Anda juga dapat menambahkan filter kolom dan baris. apply delay opsional dapat ditambahkan untuk situasi saat Anda ingin pelanggan mewakili beberapa titik waktu akhir dari penyedia.

  • Replikasi dua arah dan multi-utama: semua database anggota terbuka dalam status baca atau tulis dan dapat digunakan sepenuhnya. Setiap database endpoint bertindak sebagai penyedia dan pelanggan, sehingga memungkinkan pembuatan skenario replikasi lanjutan, dan memungkinkan pembaruan data yang dibuat di endpoint yang berbeda.

  • Dukungan penyedia cloud: Penyedia cloud seperti Google menyadari nilai ekstensi pglogical dan mengintegrasikannya ke dalam layanan Cloud mereka, seperti Google Cloud SQL untuk PostgreSQL dan AlloyDB. Penyedia cloud lain juga menyertakan ekstensi pglogical sebagai opsi, sehingga memungkinkan konfigurasi multi-cloud atau hybrid cloud.

  • Replikasi lintas versi: karena pglogical mereplikasi pernyataan SQL yang sebenarnya, hal ini memungkinkan replikasi antara versi utama PostgreSQL. Terutama saat database sumber penyedia adalah versi yang lebih rendah daripada database target pelanggan, replikasi lintas versi dapat diterapkan dengan keandalan.

    Ekstensi pglogical menawarkan dukungan untuk banyak versi PostgreSQL sebelumnya, seperti versi 9.4 dan yang lebih tinggi. Hal ini menjadikannya pilihan yang optimal untuk skenario saat Anda menangani sistem lama dan ingin mereplikasi data ke versi PostgreSQL yang lebih modern seperti yang digunakan di AlloyDB Omni dan Google Cloud AlloyDB.

Singkatnya, ekstensi pglogical menyediakan solusi replikasi logis yang kaya fitur, dengan kompatibilitas untuk versi PostgreSQL dan layanan yang dikelola Cloud sebelumnya yang mencakup Google Cloud SQL untuk PostgreSQL dan AlloyDB.

Batasan replikasi logis

Semua teknologi replikasi logis, termasuk yang digunakan dengan platform database relasional lainnya, memiliki beberapa batasan, dan kesalahan pengelolaan dapat merusak proses replikasi.

Pertimbangkan poin-poin berikut untuk penerapan yang andal:

  • Pertimbangan tentang cara menangani objek cakupan database dan cakupan cluster yang berada di luar cakupan replikasi. Ekstensi pglogical berfungsi di tingkat database dan hanya terhadap kumpulan tabel dan urutan yang ditentukan. Jenis objek lain, seperti fungsi dan prosedur, harus direplikasi menggunakan metode lain.
  • Sebaiknya semua tabel replikasi memiliki kunci utama. Anda dapat menggunakan fitur tabel REPLICA IDENTITY untuk memberi tahu ekstensi pglogical tentang kolom mana yang mengidentifikasi baris secara unik. Hal ini harus dihindari jika memungkinkan. Tabel yang tidak memiliki kunci utama, bersifat statis, dan tidak pernah UPDATED atau DELETED, serta hanya mendukung INSERTS. Jenis tabel ini tidak memerlukan kunci utama.
  • Pengelolaan pemicu dan urutan dalam database pelanggan. Secara default, pemicu didefinisikan sebagai pemicu ORIGIN atau LOCAL, dan tidak diaktifkan di database pelanggan saat baris direplikasi. Semua pemicu harus diperiksa untuk memastikan bahwa opsi REPLICA ditetapkan untuk pemicu apa pun sehingga tidak diaktifkan di sisi pelanggan kecuali jika diperlukan.
  • Menangani penyelesaian konflik secara manual atau otomatis melalui who wins aturan.
  • Mereplikasi perintah Bahasa Definisi Data (DDL) dengan menerapkan secara manual di semua endpoint, atau mereplikasi DDL secara otomatis ke database pelanggan menggunakan fungsi API pglogical yang sesuai di database penyedia.
  • Memastikan bahwa tabel dan urutan yang baru dibuat ditambahkan secara manual atau otomatis ke set replikasi di database utama.
  • Memastikan bahwa jaringan TCP yang kuat, berperforma tinggi, andal, dan aman ada di antara semua endpoint dalam topologi replikasi.

Batasan dan pembatasan tambahan ekstensi pglogical mencakup hal berikut:

  • Izin superuser diperlukan untuk pglogical versi 2.4.3.
  • Meskipun sebagian besar tabel dan urutan dapat direplikasi, jenis objek lainnya tidak direplikasi oleh ekstensi pglogical, dan tabel TEMPORARY dan UNLOGGED tidak direplikasi.
  • Untuk mereplikasi DDL, fungsi pglogical API harus digunakan. Perintah DDL standar tidak direplikasi, kecuali untuk perintah TRUNCATE.
  • Beroperasi pada tingkat objek per tabel dan per urutan, serta di-deploy per database. Artinya, beberapa objek, termasuk objek cakupan cluster seperti users dan roles, dikecualikan dari replikasi dan harus dikelola secara terpisah.

Langkah berikutnya