hghac集群主备数据不一致
1、问题描述
hghac集群中主备库数据不一致,存在较大数据差异。
2、问题原因
用户修改数据库中流复制相关用户密码后,未修改hghac.yml中的对应的用户密码,也未检查流复制备库连接字符串中的用户密码是否正确,导致流复制断开,集群数据不一致。
3、解决方案
查看集群状态主库正常,两个备库均存在数据差异,猜测备库与主库连接已断开。
[root@test-hghac-0 /]# /opt/HighGo/tools/hghac/hghactl list |
wal进程已停止,检查数据库日志发现如下大量报错:
2021-06-28 00:00:14.254 CST,"a_replication","",2328,"127.0.0.1:46089",60d8a08e.918,2,"authentication",2021-06-28 00:00:14 CST,3/47794,0,FATAL,22023,"Too many invalid attempts. Please contact the syssso user to unlock",,,,,,,,,"" |
登录test-hghac-2服务器,对被锁定的用户进行解锁:
[root@test-hghac-2 /]# psql highgo sysdba |
解锁完成后,a_replication用户立刻再次被锁。
与客户沟通后得知客户修改过a_replication、a_rewind用户密码,但未修改hghac.yml 以及流复制连接字符串中的用户密码,导致流复制断开主备数据不一致。
修改流复制相关用户的密码并修改hghac.yml文件以及流复制连接字符串中的信息。
[root@test-hghac-2 ]# psql highgo syssso |
重新启动备库后检查数据库日志以及集群状态:
FATAL,XX000,"highest timeline 6 of the primary is behind recovery timeline 7",,,,,,,,,"" |
因为时间线问题无法将备库加入集群,只能重新初始化集群备库:
[root@test-hghac-1 /]# /opt/HighGo/tools/hghac/hghactl reinit test-hghac test-hghac-1 |
完成后查看数据库集群状态:
[root@test-hghac-0 /]# /opt/HighGo/tools/hghac/hghactl list |
集群状态正常,处理完成。