meme.jpeg

πŸ“Œ Overview

kali ini akan saya akan bantu kamu untuk setup replikasi streaming antara dua server PostgreSQL 16 satu sebagai Primary, satunya lagi sebagai Standby. Cocok banget buat high availability dan backup real-time.

πŸ—ΊοΈ Topologi yang Digunakan

Peran IP Contoh Cluster Data Directory User OS
Primary 192.168.1.10 prodtes /var/lib/postgres postgres
Standby 192.168.1.20 prodtes /data/postgres postgres

πŸ“Œ Pastikan PostgreSQL 16 sudah terinstall di kedua server, ya.

βš™οΈ Langkah 1 – Siapkan Server Primary

πŸ”§ Edit pg_hba.conf

Tambahkan ini supaya Standby bisa connect:

host replication replicator 192.168.1.20/32 md

πŸ‘€ Buat Role dan Replication Slot

Login sebagai postgres, lalu jalankan:

-- Reload config dulu
SELECT pg_reload_conf();

-- Buat role khusus untuk replikasi
CREATE ROLE replicator WITH LOGIN REPLICATION PASSWORD 'repl1c4';

-- Buat physical replication slot
SELECT pg_create_physical_replication_slot('standby_slot_20');

πŸ“₯ Langkah 2 – Siapkan Server Standby

πŸ›‘ Stop PostgreSQL & Bersihkan Data Lama

# Stop service dulu
pg_ctlcluster 16 prodtes stop

# Hapus semua data lama
rm -rf /data/postgres/*

πŸ“¦ Ambil Base Backup dari Primary

pg_basebackup -h 192.168.1.10 -D /data/postgres \\
-U replicator -P -R --slot=standby_slot_20