Tentang ekstensi pglogical

Pilih versi dokumentasi:

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

Ringkasan

Ekstensi pglogical adalah alat replikasi logis yang andal dan fleksibel yang dirancang untuk PostgreSQL, dan juga mendukung ketersediaan tinggi (HA) dan pemulihan dari bencana (DR).

Replikasi biner tradisional, yang umumnya dikenal sebagai replikasi fisik, mereplikasi perubahan di tingkat sistem file dan blok, sehingga menghasilkan cermin fisik di sistem target. Meskipun replikasi fisik andal dan melindungi seluruh cluster database, replikasi ini hanya satu arah dan memerlukan akses ke file data database yang mendasarinya dan file log tulis-sebelum-tulis (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 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 direplikasi dan tempatnya. Anda dapat memilih tabel mana yang disertakan dan cara tabel baru ditangani, baik disertakan atau tidak. Anda juga dapat menambahkan filter kolom dan baris. apply delay opsional dapat ditambahkan untuk situasi saat Anda ingin pelanggan merepresentasikan beberapa titik waktu tertinggal dari penyedia.

  • Replikasi dua arah dan multi-utama: semua database anggota terbuka dalam status baca/tulis dan dapat digunakan sepenuhnya. Setiap database endpoint bertindak sebagai penyedia dan pelanggan, sehingga memungkinkan pembuatan skenario replikasi lanjutan, dan memungkinkan pembaruan data yang dilakukan 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 lainnya juga menyertakan ekstensi pglogical sebagai opsi, sehingga memungkinkan konfigurasi multi-cloud atau hybrid-cloud.

  • Replikasi lintas versi: karena pglogical mereplikasi pernyataan SQL yang sebenarnya, replikasi 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 diimplementasikan 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 berurusan dengan 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 yang lebih lama dan layanan terkelola Cloud 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 implementasi 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 lainnya, seperti fungsi dan prosedur, harus direplikasi menggunakan metode lain.
  • Sebaiknya semua tabel replikasi harus memiliki kunci utama. Anda dapat menggunakan fitur REPLICA IDENTITY tabel untuk memberi tahu ekstensi pglogical tentang kolom mana yang secara unik mengidentifikasi baris. Hal ini sebaiknya dihindari sebisa mungkin. Tabel yang tidak memiliki kunci utama, bersifat statis, dan tidak pernah UPDATED atau DELETED, dan hanya mendukung INSERTS. Jenis tabel ini tidak memerlukan kunci utama.
  • Pengelolaan pemicu dan urutan dalam database pelanggan. Secara default, pemicu ditentukan sebagai pemicu ORIGIN atau LOCAL, dan tidak diaktifkan di database pelanggan saat baris direplikasi. Semua pemicu harus diperiksa untuk memastikan opsi REPLICA ditetapkan untuk pemicu apa pun sehingga tidak diaktifkan di sisi pelanggan kecuali jika diperlukan.
  • Menangani resolusi konflik secara manual atau otomatis melalui aturan who wins.
  • Replikasi perintah Data Definition Language (DDL) dengan menerapkan secara manual di semua endpoint, atau mereplikasi DDL secara otomatis ke database pelanggan menggunakan fungsi pglogical API yang sesuai di database penyedia.
  • Memastikan tabel dan urutan yang baru dibuat ditambahkan secara manual atau otomatis ke kumpulan replikasi di database utama.
  • Memastikan bahwa jaringan TCP yang andal, berperforma tinggi, andal, dan aman ada di antara semua endpoint dalam topologi replikasi.

Batasan dan batasan 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 native tidak direplikasi, kecuali perintah TRUNCATE.
  • Beroperasi di 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