我这边生产库备库由于主从切换时间过长,wal日志找不到,archive只有60分钟,起不来了
所以去搭建一套新的从节点
基础的安装11.3我就不记录了
然后我是建了一个虚拟机,装到了地六步,但是我克隆的时候重启了,所以之前的截图没有了,只有七以后有截图
一、安装repmgr
cp /zcjpackage/repmgr-5.2.1.tar.gz /opt/
chown -R postgres.postgres /opt/
chmod -R 755 /opt/
yum install -y flex
tar -zxvf repmgr-5.3.3.tar.gz
cd repmgr-5.3.3
./configure
make install
二、添加拓展
/pgccc/postgresql-11.13/contrib
/pgccc/pgdata/share/postgresql/extension/
chown -R postgres:root /pgccc/pgdata
create extension pg_stat_statements;
三、主库配参
(其实从库也一样,我是等会用克隆了一套虚拟机)
listen_addresses = '*'
wal_level = replica
port = 5434
archive_mode=on
archive_command='cp %p /pgccc/log/%f'
archive_timeout=1800
max_wal_senders = 10
wal_sender_timeout = 60s
max_replication_slots = 10
logging_collector = on
log_directory = '/pgccc/log'
wal_log_hints = off
shared_preload_libraries = 'pg_stat_statements,auto_explain,repmgr'
四、pg_hba.conf
host repmgr repmgr 192.168.79.118/24 trust
host repmgr repmgr 192.168.79.119/24 trust
host replication repmgr 192.168.79.118/24 trust
host replication repmgr 192.168.79.119/24 trust
五、配置主库repmgr.conf
(因为我这个目录权限是root,所以这次得去rootvi,chmod chown)
vi /pgccc/repmgr.conf
node_id=1
node_name='113'
conninfo='host=192.168.79.118 port=5434 user=repmgr dbname=repmgr connect_timeout=10'
data_directory='/pgccc/pgdata_5434'
pg_bindir='/pgccc/pgdata/bin'
replication_user='repmgr'
failover='manual'
connection_check_type=ping
chown -R postgres.postgres /pgccc
chmod -R 755 /pgccc
六、主节点配置mgr
注册:
repmgr -f /pgccc/repmgr.conf primary register
查看:
repmgr -f /pgccc/repmgr.conf cluster show
--注销
repmgr -f /pgccc/repmgr.conf primary unregister
七、从库
↑截止到上面这里,我重新克隆了一台虚拟机
备库配置
vi /pgccc/repmgr.conf
node_id=2
node_name='114'
conninfo='host=192.168.79.119 port=5434 user=repmgr dbname=repmgr connect_timeout=10'
data_directory='/pgccc/pgdata_5434'
pg_bindir='/pgccc/pgdata/bin'
replication_user='repmgr'
failover='manual'
connection_check_type=ping
八、克隆备库
测试
repmgr -h 192.168.79.118 -U repmgr -d repmgr -p 5434 -f /pgccc/repmgr.conf standby clone --dry-run
强制覆盖
repmgr standby clone -h 192.168.79.118 -p 5434 -U repmgr -d repmgr -f /pgccc/repmgr.conf -F
九、注册从库repmgr
启动
pg_ctl start
注册备用节点
repmgr -f /pgccc/repmgr.conf standby register
repmgr -f /pgccc/repmgr.conf cluster show
repmgr -f /pgccc/repmgr.conf service status
连接主库:
select * from pg_stat_replication;
十、高可用
这一步我没做,网上大神教的
repmgr.conf
https://www.cnblogs.com/Dragonzlx/p/13513634.html
改为:failover='automatic'
promote_command=
follow_command=
第一个脚本里要有repmgr standby promote -f repmgr.conf --log-to-file
第二个follow脚本里要有repmgr standby follow -f repmgr.conf --log-to-file
repmgrd -f /pgccc/repmgr.conf
repmgrd -f /data/pgsql11/repmgr.conf --pid-file /tmp/repmgrd.pid --daemonize