摘要
数据库主备自动切换是保障业务连续性的关键能力,但若遇到切换失败,可能隐藏着意想不到的“权限陷阱”!近期某用户反馈KingbaseES V8R6集群自动故障转移异常,最终竟因一个不起眼的ping命令权限导致。本文将带您快速定位问题,并附上“根治”方案。
一、故障现象:自动切换为何“罢工”?
某用户KingbaseES V8R6集群主节点故障后,备节点未能自动升主,且日志中频繁出现以下关键报错:
- hamgr.log日志:
PQPING_NO_RESPONSE(节点无响应)repmgrd paused by administrator(监控进程被暂停)unable to ping host(无法Ping通主机)
- kbha.log日志:
ping: socket:不允许的操作(权限拒绝)average RTT value is not greater than zero(网络检测异常)
二、核心原因:ping命令权限惹的祸!
故障根源定位:
数据库切换过程中需通过ping命令检测网络状态,而普通用户无权限执行ICMP协议(ping依赖该协议)。
正常情况下,ping命令应具有SUID权限(权限显示为-rwsr-xr-x),允许普通用户临时以root身份运行。若权限被误修改(如变为-rwxr-xr-x),将直接导致切换失败!
验证方法:
ls -l /bin/ping
# 正常权限应为:-rwsr-xr-x. 1 root root 67680 Feb 23 2021 /bin/ping
# 异常权限示例:-rwxr-xr-x. 1 root root 67680 Feb 23 2021 /bin/ping
三、一键修复:恢复ping的SUID权限
操作步骤(需root权限执行):
# 任选以下一条命令执行
chmod u+s /bin/ping # 添加SUID位
chmod 4755 /bin/ping # 直接设置权限为-rwsr-xr-x
验证修复效果:
- 再次执行
ls -l /bin/ping确认权限恢复。 - 模拟主节点宕机,观察备节点能否自动切换。
四、知识延伸:为什么切换依赖ping?
KingbaseES主备切换流程中,ping命令承担关键作用:
- 检测主节点存活:通过ICMP协议判断主节点是否真正故障。
- VIP漂移操作(若配置虚拟IP):卸载旧主节点VIP并绑定到新主节点,此过程需验证网络可达性。
- 日志线索:若切换日志中出现
ping失败,优先排查权限或网络策略(如防火墙、SELinux)。
五、预防建议:日常巡检必查项
- 权限巡检:定期检查
/bin/ping权限,确保SUID位存在。 - 网络策略:开放ICMP协议,避免防火墙拦截。
- 日志监控:关注
hamgr.log与kbha.log,发现ping相关告警及时处理。 - 模拟演练:定期手动触发切换测试,验证高可用机制有效性。
六、互动问答
Q:若服务器禁用SUID权限是否会影响其他功能?
A:会!例如passwd、sudo等命令依赖SUID,需谨慎全局禁用,建议通过权限策略精细化控制。
遇到其他问题?
关注“金仓拾光集”,获取更多数据库运维干货与技术实战案例!
1102

被折叠的 条评论
为什么被折叠?



