You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pacemaker双节点集群Oracle监听器启动异常但数据库可连接排查求助

双节点Pacemaker集群Oracle监听故障排查解决步骤

1 验证监听实际运行状态与资源配置匹配度

  • 切换至oracle用户执行lsnrctl status pdb1,确认监听实际运行状态、监听端口、服务注册情况,重点核对监听名称是否与资源配置中的pdb1完全一致,大小写敏感
  • 执行crm configure show查看oralsnr资源配置,确认ORACLE_HOME、监听名、SID参数配置无误,且ORACLE_HOME路径对oracle用户开放读写执行权限
  • 手动执行资源代理命令复现启动逻辑:sudo OCF_ROOT=/usr/lib/ocf /usr/lib/ocf/resource.d/heartbeat/oralsnr start,直接获取命令执行返回的报错细节,定位配置问题

2 修复ocf:heartbeat:oralsnr元数据超时问题

  • 先验证资源代理文件权限:ls -l /usr/lib/ocf/resource.d/heartbeat/oralsnr,确认文件具备可执行权限,无损坏缺失
  • 手动执行元数据获取命令测试:sudo OCF_ROOT=/usr/lib/ocf /usr/lib/ocf/resource.d/heartbeat/oralsnr meta-data,若返回超时,需在资源配置中显式添加envfile参数,指向oracle用户的环境变量配置文件(如/home/oracle/.bash_profile),避免资源代理执行时缺少Oracle相关环境变量
  • 临时关闭SELinux测试:setenforce 0,确认是否为安全策略拦截了资源代理的系统调用导致超时

3 解决监听实际运行但集群检测异常问题

数据库可正常连接说明监听本身功能正常,故障点集中在集群状态检测逻辑:

  • 调整监听资源启动超时阈值:当前执行耗时393ms接近默认超时阈值,执行crm_resource --meta -r listener_or -p timeout -v 20s将启动超时调整为20秒
  • 验证双节点时间同步状态:执行chronyc sources确认两节点时间差小于500ms,时间偏移过大将导致集群状态判断异常
  • 清理手动启动的监听进程:执行ps -ef | grep tns确认监听进程是否为手动启动,若为手动启动先执行lsnrctl stop pdb1关闭进程,再由集群统一拉起,避免状态不一致冲突

修复验证

执行crm status查看集群资源状态,待listener_or资源变为Started状态后,手动执行节点切换测试,确认监听资源可在两个节点正常漂移启停。

内容的提问来源于stack exchange,提问作者Tsunani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:24:05