Portal/Notes πŸ“
Programming

PostgreSQL: Replikasi

Memahami replikasi PostgreSQL β€” streaming replication (sinkron/asinkron) dan logical replication untuk high availability.

Versi Bahasa Indonesia. Baca dalam Bahasa Inggris

Replikasi adalah proses menyalin data dari satu server PostgreSQL (primary) ke satu atau lebih server (replica). Ini memastikan ketersediaan tinggi dan distribusi beban.

Jenis Replikasi di PostgreSQL:

  • Streaming Replication – Replikasi berbasis log waktu nyata.
    • Synchronous Replication – Memastikan data ditulis ke primary dan replica sebelum diakui.
    • Asynchronous Replication – Data dikirim ke replica tetapi tidak menunggu konfirmasi.
  • Logical Replication – Replikasi tingkat tabel untuk berbagi data secara selektif.

Streaming Replication

Streaming replication menggunakan WAL (Write-Ahead Log) untuk mengirim perubahan waktu nyata dari database primary ke satu atau lebih standby server. Ini menyediakan replikasi hampir seketika untuk semua perubahan. Streaming replication dapat berupa synchronous atau asynchronous.

Synchronous Replication: Primary menunggu konfirmasi dari replica sebelum melakukan commit transaksi. Ini menjamin tidak ada data yang hilang jika primary gagal.

synchronous_standby_names = 'standby1'
synchronous_commit = 'on'

Asynchronous Replication: Database primary tidak menunggu konfirmasi dari replica. Ini menawarkan performa yang lebih cepat tetapi dapat menyebabkan jeda data di replica.

synchronous_standby_names = 'standby1'
synchronous_commit = 'off'

Use Case: High Availability dan Disaster Recovery

Sebuah perusahaan fintech perlu memastikan nol downtime untuk transaksi pelanggan yang kritis. Jika database primary gagal, standby replica dapat segera mengambil alih. Ini memungkinkan pemulihan cepat dan kehilangan data minimal.

Contoh Skenario:

  • Primary Database: Menangani transaksi pelanggan langsung.
  • Standby Database: Fail over secara otomatis jika terjadi kegagalan hardware.

Logical Replication

Logical replication adalah metode mereplikasi objek data dan perubahannya, berdasarkan replication identity (biasanya primary key).

Logical replication menggunakan model publish dan subscribe dengan satu atau lebih subscriber berlangganan ke satu atau lebih publication di node publisher. Subscriber menarik data dari publication yang mereka langgani dan selanjutnya dapat mempublikasikan ulang data untuk memungkinkan cascading replication atau konfigurasi yang lebih kompleks.

Use Case: Berbagi Data Antar Sistem

Sebuah perusahaan ritel ingin berbagi tabel tertentu (misalnya pesanan, produk) dengan platform BI (Business Intelligence) mereka untuk pelaporan, sementara menjaga data pelanggan tetap privat.

Contoh Skenario:

  • Primary Database: Menangani transaksi e-commerce.
  • Replica Database: Hanya mereplikasi tabel orders untuk analitik.
  • Manfaat: Replikasi selektif untuk berbagi data antar sistem.

Contoh Setup:

Atur publication logis di primary:

CREATE PUBLICATION my_pub FOR TABLE orders;

Di replica, berlangganan ke publication:

CREATE SUBSCRIPTION my_sub
CONNECTION 'host=primary_db user=replicator dbname=ecommerce'
FOR PUBLICATION my_pub;

Referensi


Edit on GitHub

Last updated on

PostgreSQL: Replikasi | Faisal Affan