小亦平台会持续给大家科普一些运维过程中常见的问题解决案例,运维朋友们可以在常见问题及解决方案专栏查看更多案例
问题概述:
- 原主节点异常,切换失败。
- 原主节点vip资源未完全释放。
- 在原主节点和切换后的主节点都可以检查到vip挂载信息。
以下为数据库12主节点脑裂场景:
主库12b corosync进程异常,pgerror告警,登录集群查看集群状态发现原主库12b状态能看到三个节点。登录其他两节点12a和12c数据库,其他俩节点数据库在一个集群内,12a是主库,12c是。原主节点12b和切换后的主节点12a都挂载vip。12b的corosync,有大量totem协议的进程。
问题分析:
corosync进程异常,导致集群切换12b集群不释放。库切换成功,集群状态异常。
解决方案: 登录故障数据库
通过crm_mon -Afr1命令,查看当前数据库状态。
- 查看/var/log/cluster/corosync.log日志,确认切库之前主库是哪个节点。
- 确认切换情况,和数据写入情况
- 通过12c节点ssh vip看登录的是哪台服务器,测试发现登录的是12a服务器,确定12a上的vip是生效的。
- 分别登录12a、12b、查询流复制情况
select * from pg_stat_replication;
select * from pg_stat_wal_replication;
可知12a是主库,往12c发wal日志。12b无返回结果。
5. 登录12c节点,查询日志恢复情况
6. 登录12a查询数据库连接情况,12a应该有业务的连接。
select * from pg_stat_activity;
处理步骤:
-
将原主节点虚拟机强制重启
-
通过各系统的云平台管理页面强制重启虚机
-
通过云管页面重启虚机
-
虚机恢复后,启动集群服务
pcs cluster start -
检查集群状态
cls_status -
启动集群后可能会出现数据库stop或alone状态,时间线变化或日志文件被移除引起,需要手动重拉全备
rm -rf /pgdb/pgdata/
cls_rebulid_slave
立即查看更多postgresql的相关内容:www.ces-xiaoyi.com.cn/?wework_cfm…
运维工作中遇到难题?立即提交工单:www.ces-xiaoyi.com.cn/#/workOrder… 小亦平台工程师火速响应,助您快速修复故障!