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 pemulihan dari bencana (DR).

Replikasi biner tradisional, 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 satu arah dan memerlukan akses ke file data database pokok dan file log tulis-sebelum (WAL).

Sementara itu, ekstensi pglogical mengekstrak perubahan SQL dari database penyedia dan mereplikasinya, lalu memutarnya kembali 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 direplikasi dan tujuannya. 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 di belakang dari penyedia.

  • Replikasi dua arah dan multi-primer: 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 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, yang memungkinkan konfigurasi multi-cloud atau hybrid cloud.

  • Replikasi lintas versi: karena pglogical mereplikasi pernyataan SQL yang sebenarnya, pglogical memungkinkan replikasi antara versi utama PostgreSQL. Terutama jika database sumber penyedia memiliki 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 berurusan dengan sistem lama dan ingin mereplikasi data ke versi PostgreSQL yang lebih modern seperti yang digunakan di AlloyDB Omni dan AlloyDB. Google Cloud

Singkatnya, ekstensi pglogical menyediakan solusi replikasi logis yang kaya fitur, dengan kompatibilitas untuk versi PostgreSQL yang lebih lama dan layanan yang dikelola 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 menghentikan 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 sekumpulan tabel dan urutan tertentu. Jenis objek lain, 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 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 ditentukan 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 akhir pelanggan kecuali jika diperlukan.
  • Menangani penyelesaian konflik secara manual atau otomatis melalui who wins aturan.
  • Mereplikasi perintah Data Definition Language (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 andal, berperforma tinggi, tepercaya, dan aman ada di antara semua endpoint dalam topologi replikasi.

Pembatasan dan batasan tambahan ekstensi pglogical mencakup hal-hal berikut:

  • Izin superuser diperlukan untuk pglogical versi 2.4.3.
  • Meskipun sebagian besar tabel dan urutan dapat direplikasi, jenis objek lain tidak direplikasi oleh ekstensi pglogical, dan tabel TEMPORARY serta UNLOGGED tidak direplikasi.
  • Untuk mereplikasi DDL, fungsi API pglogical harus digunakan. Perintah DDL asli 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