Repmgr configuration and commands
repmgr single and multi server configuration:
step 1: normal physical streaming replication for two servers and add postgresql.conf "wal_log_hints = on"
master data path =/var/lib/pgsql/10/data port=5432
slave data path = /var/lib/pgsql/10/tada port=5433
step 2: install repmgr (yum install repmgr10-conrib)
repmgr bin dir=/usr/pgsql-10/bin/ --> repmgr and repmgrd
repmgr configuration dir=/etc/repmgr/10/repmgr.conf
both postgresql.conf changes parameter for shared_preload_library='repmgr' //restart both server
step 3: copy repmgr.conf file
cp -rf repmgr.conf repmgr_data.conf // repmgr_data.conf is a current master repmgr configuration file
cp -rf repmgr.conf repmgr_tada.conf // repmgr_tada.conf is a current slave repmgr configuration file
step 4: edit master repmgr configuration file
vi repmgr_data.conf
node-id=1
node_name = 'data'
conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5432'
data_directory=/usr/local/pgsql/10/data/
pg_bindir=/usr/pgsql-10/bin/
use_replication_slots = yes
monitoring_history=yes
failover=automatic
promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_data.conf'
follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_data.conf -W --upstream-node-id=%n'
step 5: edit slave repmgr configuration file
vi repmgr_tada.conf
node-id=2
node_name = 'tada'
conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5433'
data_directory=/usr/local/pgsql/10/tada/
pg_bindir=/usr/pgsql-10/bin/
use_replication_slots = yes
monitoring_history=yes
failover=automatic
promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_tada.conf'
follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_tada.conf -W --upstream-node-id=%n'
change owner for both repmgr.conf file
step 6: add nodes in repmgr
su - postgres
. .bash_profile //run .bash_profile
repmgr -f /etc/repmgr/10/repmgr_data.conf primary register
repmgr -f /etc/repmgr/10/repmgr_tada.conf standby register -F
repmgr -f /etc/repmgr/10/repmgr_tada.conf standby follow
============================================================================================================================
repmgr -f /etc/repmgr/10/repmgr_data.conf cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
1 | data | primary | * running | | default | 100 | 3 | host=192.168.1.162 user=postgres port=5432 dbname=postgres
2 | tada | standby | running | data | default | 100 | 3 | host=192.168.1.162 user=postgres port=5433 dbname=postgres
repmgr -f /etc/repmgr/10/repmgr_tada.conf cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
1 | data | primary | * running | | default | 100 | 3 | host=192.168.1.162 user=postgres port=5432 dbname=postgres
2 | tada | standby | running | data | default | 100 | 3 | host=192.168.1.162 user=postgres port=5433 dbname=postgres
step 7: monitoring for slave node repmgr
repmgrd -f /etc/repmgr/10/repmgr_tada.conf --monitoring-history --verbose
[2019-12-19 13:18:49] [NOTICE] using provided configuration file "/etc/repmgr/10/repmgr_data.conf"
[2019-12-19 13:18:49] [NOTICE] repmgrd (repmgrd 5.0.0) starting up
[2019-12-19 13:18:49] [INFO] connecting to database "host=192.168.1.162 user=postgres port=5432 dbname=postgres"
-bash-4.1$ INFO: set_repmgrd_pid(): provided pidfile is /tmp/repmgrd.pid
[2019-12-19 13:18:49] [NOTICE] starting monitoring of node "data" (ID: 1)
[2019-12-19 13:18:49] [INFO] "connection_check_type" set to "ping"
[2019-12-19 13:18:49] [NOTICE] monitoring cluster primary "data" (ID: 1)
[2019-12-19 13:18:49] [INFO] child node "tada" (ID: 2) is attached
step 8: stop current master
pg_ctl -D /var/lib/pgsql/10/data/ stop
watch monitoring for slave node repmgr
repmgrd -f /etc/repmgr/10/repmgr_data.conf --monitoring-history --verbose
PROMOTE SUCESSFULLY
step 9: node rejoin for old master
start old master --> pg_ctl -D /var/lib/pgsql/10/data/ start
repmgr -f /etc/repmgr/10/repmgr_data.conf node service --action=stop --checkpoint
-------------------->(check port number for /var/lib/pgsql/10/data/)<------------------------
repmgr -f /etc/repmgr/10/repmgr_data.conf node rejoin -d 'host=192.168.1.162 user=postgres port=5433 dbname=postgres' --force-rewind
failover complete...
step 1: normal physical streaming replication for two servers and add postgresql.conf "wal_log_hints = on"
master data path =/var/lib/pgsql/10/data port=5432
slave data path = /var/lib/pgsql/10/tada port=5433
step 2: install repmgr (yum install repmgr10-conrib)
repmgr bin dir=/usr/pgsql-10/bin/ --> repmgr and repmgrd
repmgr configuration dir=/etc/repmgr/10/repmgr.conf
both postgresql.conf changes parameter for shared_preload_library='repmgr' //restart both server
step 3: copy repmgr.conf file
cp -rf repmgr.conf repmgr_data.conf // repmgr_data.conf is a current master repmgr configuration file
cp -rf repmgr.conf repmgr_tada.conf // repmgr_tada.conf is a current slave repmgr configuration file
step 4: edit master repmgr configuration file
vi repmgr_data.conf
node-id=1
node_name = 'data'
conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5432'
data_directory=/usr/local/pgsql/10/data/
pg_bindir=/usr/pgsql-10/bin/
use_replication_slots = yes
monitoring_history=yes
failover=automatic
promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_data.conf'
follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_data.conf -W --upstream-node-id=%n'
step 5: edit slave repmgr configuration file
vi repmgr_tada.conf
node-id=2
node_name = 'tada'
conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5433'
data_directory=/usr/local/pgsql/10/tada/
pg_bindir=/usr/pgsql-10/bin/
use_replication_slots = yes
monitoring_history=yes
failover=automatic
promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_tada.conf'
follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_tada.conf -W --upstream-node-id=%n'
change owner for both repmgr.conf file
step 6: add nodes in repmgr
su - postgres
. .bash_profile //run .bash_profile
repmgr -f /etc/repmgr/10/repmgr_data.conf primary register
repmgr -f /etc/repmgr/10/repmgr_tada.conf standby register -F
repmgr -f /etc/repmgr/10/repmgr_tada.conf standby follow
============================================================================================================================
repmgr -f /etc/repmgr/10/repmgr_data.conf cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
1 | data | primary | * running | | default | 100 | 3 | host=192.168.1.162 user=postgres port=5432 dbname=postgres
2 | tada | standby | running | data | default | 100 | 3 | host=192.168.1.162 user=postgres port=5433 dbname=postgres
repmgr -f /etc/repmgr/10/repmgr_tada.conf cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
1 | data | primary | * running | | default | 100 | 3 | host=192.168.1.162 user=postgres port=5432 dbname=postgres
2 | tada | standby | running | data | default | 100 | 3 | host=192.168.1.162 user=postgres port=5433 dbname=postgres
step 7: monitoring for slave node repmgr
repmgrd -f /etc/repmgr/10/repmgr_tada.conf --monitoring-history --verbose
[2019-12-19 13:18:49] [NOTICE] using provided configuration file "/etc/repmgr/10/repmgr_data.conf"
[2019-12-19 13:18:49] [NOTICE] repmgrd (repmgrd 5.0.0) starting up
[2019-12-19 13:18:49] [INFO] connecting to database "host=192.168.1.162 user=postgres port=5432 dbname=postgres"
-bash-4.1$ INFO: set_repmgrd_pid(): provided pidfile is /tmp/repmgrd.pid
[2019-12-19 13:18:49] [NOTICE] starting monitoring of node "data" (ID: 1)
[2019-12-19 13:18:49] [INFO] "connection_check_type" set to "ping"
[2019-12-19 13:18:49] [NOTICE] monitoring cluster primary "data" (ID: 1)
[2019-12-19 13:18:49] [INFO] child node "tada" (ID: 2) is attached
step 8: stop current master
pg_ctl -D /var/lib/pgsql/10/data/ stop
watch monitoring for slave node repmgr
repmgrd -f /etc/repmgr/10/repmgr_data.conf --monitoring-history --verbose
PROMOTE SUCESSFULLY
step 9: node rejoin for old master
start old master --> pg_ctl -D /var/lib/pgsql/10/data/ start
repmgr -f /etc/repmgr/10/repmgr_data.conf node service --action=stop --checkpoint
-------------------->(check port number for /var/lib/pgsql/10/data/)<------------------------
repmgr -f /etc/repmgr/10/repmgr_data.conf node rejoin -d 'host=192.168.1.162 user=postgres port=5433 dbname=postgres' --force-rewind
failover complete...
Looks good muthu
ReplyDelete