Streaming Replication Postgresql 14 di Ubuntu Server 22.04 LTS
Streaming Replication, adalah salah satu fitur dari PostgreSQL, yang memungkinkan untuk melakukan replikasi data terhadap server standby yang bersumber dari server utama (primary), informasi terbaru di server primary ditransfer ke server standby secara realtime, sehingga database server utama dan server standby dapat tetap sinkron. Fitur Streaming Replication ini membawa manfaat besar bagi sistem Anda.
Baca juga : Cara-Install-Squid-Proxy-di-Ubuntu-22.04
Cara Melakukan Streaming Replication Postgresql 14
Berikut ini adalah langkah-langkah untuk melakukan Streaming Replication Postgrsql 14 di Ubuntu Server 22.04 LTS :
1. Install dan jalankan Postgrsql 14
Langkap pertama install dan jalankan service postgrsql 14 di semua node server primary maupun standby.
2. Konfigurasi server primary (Primary Node)
Edit file konfigurasi postgresql.conf
root@primary-node:~# nano /etc/postgresql/14/main/postgresql.conf
Modifikasi beberapa konfigurasi untuk kebutuhan replikasi
# line 60 : uncomment and change
# Bagian ini supaya server postgresql dapat diakses secara remote
listen_addresses = '*'
# line 205 : uncomment
wal_level = replica
# line 210 : uncomment
synchronous_commit = on
# line 298 : uncomment
# maximum koneksi yang terhubung secara bersamaan dari server streaming client
max_wal_senders = 10
# line 312 : uncomment and change
synchronous_standby_names = '*'
Selanjutnya, edit file konfigurasi authentication pg_hba.conf
root@primary-node:~# nano /etc/postgresql/14/main/pg_hba.conf
Tambahkan beberapa baris konfigurasi berikut ini di akhir baris
# host replication [replication user] [allowed network] [authentication method]
host replication user_replica 10.0.0.30/32 scram-sha-256
# Keterangan :
# host = jalur koneksi
# replication = tipe koneksi
# rep_user = user yang bisa replikasi
# 10.0.0.30/32 = IP node replika bisa ip public atau private IP jika dalam 1 network
# scram-sha-256 = metode autentikasi
Buat user replikasi (user_replica
)
root@primary-node:~# su - postgres
postgres@primary-node:~$ createuser --replication -P user_replica
Enter password for new role: # masukan password untuk user 'user_replica'
Enter it again:
postgres@primary-node:~$ exit
#Restart service
root@primary-node:~# systemctl restart postgresql
3. Konfigurasi server replika (Replica Node)
Pertama-tama stop service database yang sedang berjalan
root@replica-node:~# systemctl stop postgresql
Hapus data yang sudah ada, karena akan diganti dengan backup dari node primary.
root@replica-node:~# rm -rf /var/lib/postgresql/14/main/*
Backup data dari server primary (primary node)
root@replica-node:~# su - postgres
postgres@replica-node:~$ pg_basebackup -R -h www.host-or-ip-primary-node.com -U user_replica -D /var/lib/postgresql/14/main -P
Password: # password of replication user 'user_replica' yang sudah dibuat diatas
34825/34825 kB (100%), 1/1 tablespace
postgres@replica-node:~$ exit
Atur konfigurasi postgresql.conf
di server replika
postgres@replica-node:~# nano /etc/postgresql/14/main/postgresql.conf
# line 60 : uncomment and change
listen_addresses = '*'
# line 325 : uncomment
hot_standby = on
Restart service database postgrsql
root@replica-node:~# systemctl start postgresql
4. Sekarang tinggal pastikan bahwa server replica sudah terhubung dengan server primary
Jalankan query 'select usename, application_name, client_addr, state, sync_priority, sync_state from pg_stat_replication;'
untuk melihat server yang terhubung ke server primary.
root@replica-node:~# su - postgres
postgres@primary-node:~$ psql -c "select usename, application_name, client_addr, state, sync_priority, sync_state from pg_stat_replication;"
usename | application_name | client_addr | state | sync_priority | sync_state
----------+------------------+-------------+-----------+---------------+------------
rep_user | 14/main | 10.0.0.30 | streaming | 1 | sync
(1 row)
Penutup
Itulah cara melakukan streaming replication postgresql di Ubuntu 22.04 LTS, silahkan share atau bookmark jika artikel ini bermanfaat. Terimakasih.