Master Slave Postgresql
1. Install
dua buah server linux centos
2. Cek
port ethernet yang digunakan untuk nat dan internet host only dengan mengetik
perintah
#nmcli
d
3. Setting ip dhcp pada port nat, digunakan untuk
mendownload package yum.
Ubah konfigurasi dengan menggunakan
perintah dibawah ini :
#vim /etc/sysconfig/network-script/ifcfg-[port]
Contoh :
#vim /etc/sysconfig/network-script/ifcfg-enp0s3
Ubah ONBOOT=NO
à ONBOOT=YES
Kemudian
ketik :wq untuk save dan keluar dari
text editor vim.
1. Restart service mysql dengan perintah
dibawah ini :
#service
network restart
2. Menambahkan repository postgresql
#yum
-y install
https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
3. Menginstall aplikasi postgresql
#
yum -y install postgresql96-server
postgresql96-contrib
4. Sebelum merunning postgresql maka
pindahkan properties postgresql direktori dari '/usr/pgsql-9.6/bin' ke 'postgresql96-setup'
.
#cd
/usr/pgsql-9.6/bin
#./postgresql96-setup
initdb
5. Selanjutnya jalankan service postgresql
#systemctl
start postgresql-9.6
#systemctl
enable postgresql-9.6
6. Lakukan pengecekan Postgresql berjalan di
5432 dengan state LISTEN dengan cara :
#netstat
–plntu
7. Apabila service netstat belum tersedia,
maka harus lakukan penginstallan.
#yum
-y install net-tools
8. Ubah config di pg_hba.conf
#
TYPE DATABASE USER ADDRESS METHOD
#
"local" is for Unix domain socket connections only
local all all peer
#
IPv4 local connections:
host all all 127.0.0.1/32 trust
#
IPv6 local connections:
host all all ::1/128 ident
1. Login postgresql
#
psql –Upostgres –h127.0.0.1
2. Kemudian running postgresql
su
- postgres
psql
3. Selanjutnya ubah password pada postgresql
\password
postgres
Enter
new password:
4. Selanjutnya mengaktifkan firewall dan
mengijinkan aplikasi tersebut pada firewall.
firewall-cmd
--add-service=postgresql --permanent
firewall-cmd
–reload
5. Cek apakah service tersebut sudah
tersetting dengan benar.
firewall-cmd
--list-all
6. Mengubah ip dynamic ke static.
1
CentOS 7 server
Master
- Read and Write Permission - IP: 192.168.56.10
1
CentOS 7 server
Slave
- Only Read Permission- IP: 192.168.56.11
Root
Privileges
*sebelumnya
disable port ethernet untuk ip dhcp yang sebelumnya dihidupkan.
*masuk
ke settingan properties Ethernet
#vim
/etc/sysconfig/network-script/ifcfg-[port]
#vim
/etc/sysconfig/network-script/ifcfg-enp0s3
Dengan
mengubah ONBOOT=YES Ã ONBOOT=NO
*perintah
edit port Ethernet :
#vim
/etc/sysconfig/network-script/ifcfg-enp0s8
Kemudian
edit port Ethernet untuk ip local :
1. Konfigurasi master
Pindah
ke direktori '/var/lib/pgsql/9.6/data'
kemudian edit file konfigurasi 'postgresql.conf'
cd /var/lib/pgsql/9.6/data
#vim
postgresql.conf
2. Setting konfigurasi postgresql master
#
listen_addresses = ‘192.168.56.10’
listen_addresses
= ‘*’
wal_level
= hot_standby
synchronous_commit
= local
archive_mode
= on
archive_command
= 'rsync -a %p 192.168.56.11:/var/lib/pgsql/data/archive/%f'
max_wal_senders
= 2
wal_keep_segments
= 10
#nama
database yang digunakan 'pgslave01'
synchronous_standby_names
= 'pgslave01'
*untuk asynchrounous ‘synchronous_standby_names’ di buat menjadi
comment
#synchronous_standby_names = 'pgslave01'
1. Ubah properties yang ada di file pg_hba.conf
#vim pg_hba.conf
# Localhost
host
replication replica 127.0.0.1/24 password
#
PostgreSQL Master IP address
host
replication replica 192.168.56.10/24 password
# PostgreSQL SLave IP address
host replication replica 192.168.56.11/24 password
Kemudian
save dengan mengetik :wq dan enter
1. Lakukan restart service postgresql
#systemctl
restart postgresql-9.6
2. Membuat user dan password di postgresql
User
: replica
Password
: xxx
su - postgres
createuser --replication -P replica
Enter New Password:
1. Konfigurasi database slave
#
systemctl stop postgresql-9.6
2. Pindah ke direktori /var/lib/pgsql/9.6/
dan backup direktori tersebut.
#cd
/var/lib/pgsql/9.6/
#mv
data data-backup
3. Buat direktori dan ubah hak aksesnya.
mkdir
-p data/
chmod
700 data/
chown
-R postgres:postgres data/
4. Login di postgres master dan copy semua
data dari master server ke slave server sebagai user replica.
su
- postgres
pg_basebackup
-h 192.168.56.10 -U replica -D /var/lib/pgsql/9.6/data -P --xlog
Password:
1. Selanjutnya
setup postgresql.conf (slave server)
#cd
/var/lib/pgsql/9.6/data/
#vim
postgresql.conf
#listen_addresses = '192.168.56.11'
listen_addresses = '*'
hot_standby = on
1. Kemudian, buat file dengan nama 'recovery.conf'
#vim
recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=192.168.56.10
port=5432 user=replica password=aqwe123@ application_name=pgslave01'
trigger_file = '/tmp/postgresql.trigger.5432'
*di
primary_connifo harus sesuai dengan server dan ip yang dipakai
1. Ubah permission data pada user postgres.
#chmod
600 recovery.conf
#chown
postgres:postgres recovery.conf
2. Mengaktifkan service postgresql
#systemctl
start postgresql-9.6
3. Lakukan pengecekan apakah port postgresql
sudah berjalan sesuai dengan standar .
#netstat
-plntu
1. Testing
(posisi di postgresql master)
su
– postgres
2. Cek replikasi sudah sync atau async
psql
-c "select application_name, state, sync_priority, sync_state from
pg_stat_replication;"
psql
-x -c "select * from pg_stat_replication;"
3. Login ke master
su
- postgres
psql
4. Membuat table
CREATE
TABLE replica_test (test varchar(100));
INSERT
INTO replica_test VALUES ('howtoforge.com');
INSERT
INTO replica_test VALUES ('This is from Master');
INSERT
INTO replica_test VALUES ('pg replication by hakase-labs');
1. Login
ke slave
su
- postgres
psql
2. Cek data ditable replikasi
select
* from replica_test;
#Note
Setup agar running psql di user root : $psql
Ubah settingan /var/lib/pgsql/9.3/data/pg_hba.conf
#
IPv4 local connections:
host all
all 127.0.0.1/32 trust
[root@dbmonitoringnew
~]# systemctl restart postgresql-9.3
[root@dbmonitoringnew
~]# psql -U postgres -h 127.0.0.1
Comments
Post a Comment