Tentang ekstensi pglogical

Halaman ini memberikan ringkasan tentang ekstensi pglogical, manfaatnya, 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 tradisional, yang biasa dikenal sebagai replikasi fisik, mereplikasi perubahan di tingkat sistem file dan blok, sehingga menghasilkan mirror fisik di sistem target. Meskipun replikasi fisiknya andal dan melindungi seluruh cluster database, replikasi ini hanya bersifat satu arah dan memerlukan akses ke file data database dan file log write-ahead (WAL) yang mendasarinya.

Sedangkan, ekstensi pglogical mengekstrak perubahan SQL dari database penyedia dan mereplikasinya, lalu memutar 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 untuk menentukan data yang ingin direplikasi dan tempatnya. Anda dapat memilih tabel yang disertakan dan cara tabel baru ditangani, baik disertakan maupun tidak. Anda juga dapat menambahkan filter kolom dan baris. apply delay opsional dapat ditambahkan untuk situasi saat Anda ingin pelanggan merepresentasikan beberapa titik waktu akhir 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 kemungkinan pembaruan data yang dilakukan di endpoint yang berbeda.

  • Dukungan penyedia cloud: Penyedia cloud seperti Google mengakui 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, yang memungkinkan konfigurasi multi-cloud atau hybrid cloud.

  • Replikasi lintas versi: karena pglogical mereplikasi pernyataan SQL yang sebenarnya, replikasi ini memungkinkan replikasi antar-versi utama PostgreSQL. Terutama jika database sumber penyedia memiliki versi yang lebih rendah daripada database target pelanggan, replikasi lintas versi dapat diterapkan dengan andal.

    Ekstensi pglogical menawarkan dukungan untuk banyak versi PostgreSQL lama 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 PostgreSQL versi 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 PostgreSQL versi 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 pengelolaan yang buruk dapat mengganggu 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 level database dan hanya terhadap kumpulan tabel dan urutan yang ditentukan. Jenis objek lainnya, seperti fungsi dan prosedur, harus direplikasi menggunakan beberapa 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 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 di 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 penyelesaian konflik secara manual atau otomatis melalui aturan who wins.
  • Replikasi perintah Data Definition Language (DDL) dengan menerapkannya secara manual di semua endpoint, atau mereplikasi DDL secara otomatis ke database pelanggan menggunakan fungsi pglogical API 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 andal, berperforma tinggi, dapat diandalkan, dan aman ada di antara semua endpoint dalam topologi replikasi.

Pembatasan dan batasan tambahan ekstensi pglogical mencakup hal berikut:

  • Izin superuser saat ini 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 serta UNLOGGED tidak direplikasi.
  • Untuk mereplikasi DDL, fungsi pglogical API harus digunakan. Perintah DDL native 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 selanjutnya