目录
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 6
版本:4.3.4
症状
流复制架构,主库新建的表未能同步到备库,发现流复制已经断开。
问题原因
1、查看错误日志,报错:
2019-07-19 14:43:09.448 CST,"repuser","",11005,"10.0.0.16:41020",5d31667d.2afd,4,"idle",2019-07-19 14:43:09 CST,4/0,0,ERROR,58P01,"requested WAL segment 000000010000000000000033 has already been removed",,,,,,,,,"walreceiver" |
2、日志断档,主库上的wal日志被移除,流复制断开。
解决方案
1、流复制断开,先看进程是否存在,主库看wal sender,备库看receiver进程,发现都不存在,说明流复制已经断开。
2、然后备库最近错误日志,在data目录下的hg_log目录,找到最近的相关报错日志,发现主库的wal日志已经被移除。
3、流复制的备库是通过wal receiver进程获取相关的wal日志来进行应用达到主备的一致,因此主库上的wal日志被移除,备库不能继续进行应用相关wal,因此流复制断开。
4、此种情况只能通过重做备库,来恢复流复制,使用pg_basebackup命令对备库进行重做,但需要注意一点,如果数据量较大,要选择在夜间业务不繁忙时重做备库,因为可能会对资源占用较大,有一定影响。
5、先关闭备库并将data目录改为data1。
[highgo@localhost 4.3.4]$ pg_ctl stop [highgo@localhost 4.3.4]$ cd $PGHOME [highgo@localhost 4.3.4]$ mv data data1 |
6、重做备库,ip改为主库相关ip,目录改为备库相关目录。
[highgo@localhost 4.3.4]$ pg_basebackup -h 192.168.56.101 -p 5866 -U repuser -D /highgo/4.3.4/data -Fp -P -Xs -R -v |
更多详细信息请登录【瀚高技术支持平台】 查看