HAC集群(数据库包含自定义表空间),搭建流复制后启动集群服务出现备库日志号比主库多1的解决方法

环境

系统平台:N/A
版本:4.5

症状

主库含有自定义表空间,手动还原备库后直接启动hac,备库日志号比主库多1。

1.主库创建好自定义表空间
在这里插入图片描述
2.备库创好对应路径进行还原

pg_basebackup -h x.x.32.128 -p 5866 -U sysdba -D /opt/HighGo4.5.6-see/data -Fp -P -Xs -R -v -l highgobak -T "/opt/HighGo4.5.6-see/data/tbs1"=/highgo/tbs1

3.启动hac后查询集群状态和流复制状态
在这里插入图片描述
4.比较两库的日志号

主库
在这里插入图片描述
备库
在这里插入图片描述
5.查看备库数据库日志报错
在这里插入图片描述
started streaming WAL from primary at 0/14000000 on timeline 5

could not receive data from WAL stream: ERROR: requested starting point 0/14000000 is ahead of the WAL flush position of this server 0/1301C5B0

问题原因

手动还原备库后直接使用hac接管会导致备库日志号多1

解决方案

  1. 手动还原备库
    在这里插入图片描述
  2. 原备库完成后手动启动一次备库
    在这里插入图片描述
  3. 查看备库日志 发现正常
    在这里插入图片描述
  4. 在主库查询流复制状态正常
    在这里插入图片描述
  5. 比较两库日志号一致
    主库
    在这里插入图片描述
    备库在这里插入图片描述
  6. pg_ctl stop 手动关闭备库后 启动hac
    在这里插入图片描述
  7. 在主库查询状态 恢复正常
    在这里插入图片描述
    经验证发现,无论主库是否含有自定义表空间,备库手动pg_basebackup还原后直接使用hac服务启动接管数据库,均会出现备库日志号比主库多1的情况。

在手动pg_basebackup还原备库后,均需pg_ctl start手动启动数据库检查状态后,关闭数据库,再使用hac服务接管。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值