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 ekstensipglogical
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 ekstensipglogical
tentang kolom mana yang mengidentifikasi baris secara unik. Hal ini harus dihindari jika memungkinkan. Tabel yang tidak memiliki kunci utama, bersifat statis, dan tidak pernahUPDATED
atauDELETED
, serta hanya mendukungINSERTS
. Jenis tabel ini tidak memerlukan kunci utama. - Pengelolaan pemicu dan urutan di database pelanggan. Secara default, pemicu
ditentukan sebagai pemicu
ORIGIN
atauLOCAL
, dan tidak diaktifkan di database pelanggan saat baris direplikasi. Semua pemicu harus diperiksa untuk memastikan opsiREPLICA
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 tabelTEMPORARY
sertaUNLOGGED
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
danroles
, dikecualikan dari replikasi dan harus dikelola secara terpisah.
Langkah selanjutnya
- Mereplikasi data antara Google Cloud AlloyDB dan AlloyDB Omni
- Mereplikasi data antara AlloyDB Omni dan database lain