oGRAC 单节点部署:CMS 启动失败与数据库异常退出的排查与修复

📅 2026/8/6 18:59:51
oGRAC 单节点部署:CMS 启动失败与数据库异常退出的排查与修复
oGRAC 单节点部署CMS 启动失败与数据库异常退出的排查与修复适用现象执行cms server -start报invalid argument无法拉起或 CMS 进程存活但集群不可用运行日志持续输出cant establish an connection to 192.168.86.2或ogracd进程异常退出。根本原因安装模板默认按双节点配置生成单节点部署后残留项未完全收敛。残留存在于两个层面——cluster.ini文本配置层与GCC 二进制元数据中的NODE_COUNT。仅处理文本层将导致问题复发。一、故障传导链GCC 中 NODE_COUNT 2实际仅存在 node0 ↓ CMS 初始化 MES 时按 for i in 0..NODE_COUNT-1 遍历访问到不存在的 instance 1 ↓ node def is invalid → MES profile 初始化失败 → CMS 进程退出 ↓ ogracd 无法连接 CMS 的 UDS socket重试 5 次均失败 ↓ 触发 CMS_CLI ABORT 机制 → 数据库实例主动终止需要建立的核心认知数据库实例退出通常并非数据库自身故障而是 CMS 异常的连带结果。因此无论表象如何排查应从 CMS 入手。二、状态查询source~/.bashrc cmsstat-server# ① CMS 服务端状态cmsstat-resdb# ② 数据库资源状态cms gcc-exp/tmp/c.exphead-6/tmp/c.exp# ③ GCC 元数据grep-ECLUSTER_SIZE|\[1\]~/data/cfg/cluster.ini# ④ 文本层残留ls~/data/res_disable2/dev/null# ⑤ 资源禁用标记结果研判命令正常表现异常含义①cms stat -serverSRV_READY TRUE返回空表表示 CMS 服务端未运行②cms stat -res dbSTAT ONLINEUNKNOWN表示 CMS 无法与该资源通信③cms gcc -exp0,1,x,x0,2,x,x即为故障根源④grep cluster.iniCLUSTER_SIZE 1无[1]配置项存在NODE_IP[1]等项表明文本层未收敛⑤ls res_disable文件不存在文件存在将阻止 CMS 拉起数据库资源GCC 元数据研判第 ③ 项为排查重点其输出结构如下#GCC_HEAD# META_VER,NODE_COUNT,DATA_VER,CHECKSUM 0,2,6,0 ← 声明节点数为 2 #GCC_NODE# NODE_ID,NAME,IP,PORT 0,node0,127.0.0.1,14587 ← 实际仅定义 1 个节点判定规则NODE_COUNT取值必须与#GCC_NODE#段实际节点记录数一致。上例声明 2 个而实际 1 个二者不一致将导致 CMS 无法启动。此处存在三项易被忽略的特性cms node -list输出正常并不足以排除故障。该命令仅读取节点列表不校验头部计数字段容易造成误判。cms node -del不会同步递减NODE_COUNT。执行删除后节点记录已移除但计数字段仍保留原值。历史备份均包含相同的错误取值因此cms gcc -restore无法修复该问题须手工修正。日志辅助定位tail-30~/data/log/run/cms_srv.rlog|grep-EERROR|invalidtail-20~/data/log/run/ogracd.rlog|grep-EABORT|ERROR日志关键字含义对应变更项node def is invalid, node_id:1GCC 节点计数与实际不符变更项 ③cant establish an connection to 192.168.86.2尝试连接不存在的对端节点变更项 ①Iof file not exist/ 路径含ogracdba共享路径指向模板默认账户变更项 ②Another cms server is running残留进程占用锁文件与端口参见第三节[CMS_CLI] ABORT: cms cli conn retry failed数据库因 CMS 失联而主动终止应优先修复 CMS三、停止服务配置变更须在服务停止后方可生效残留进程将持续占用锁文件与端口。source~/.bashrc cms res-stopdb# 先停止数据库资源cms server-stop# 再停止 CMSsleep5# 未完全停止时的兜底处理pkill-9-fogracd -D;pkill-9-fcms serverrm-f~/data/cms_server.lck ~/data/oGRAC.ogd.cms.uds_0ps-ef|grep-Ecms server|ogracd|grep-vgrep||echo✓ 已停止停止顺序不可颠倒。须先停数据库资源再停 CMS顺序颠倒将触发数据库 ABORT 机制遗留异常状态。四、配置变更变更前执行备份cd~/data/cfgTS$(date%Y%m%d%H%M%S)cp-pcluster.ini cluster.ini.bak_$TScp-pcms.ini cms.ini.bak_$TScd~/datacms gcc-backup①cluster.ini清除双节点残留项sed-i/^\s*LSNR_PORT\[1\]/d; /^\s*CMS_PORT\[1\]/d; /^\s*NODE_IP\[1\]/d; /^\s*LSNR_NODE_IP\[1\]/d~/data/cfg/cluster.inised-is/^CLUSTER_SIZE.*/CLUSTER_SIZE 1/~/data/cfg/cluster.ini将CLUSTER_SIZE置为 1并删除四项[1]配置的整行。关于采用删除而非改写为127.0.0.1的说明早期资料多建议单节点场景下将NODE_IP[1]指向回环地址。该方式仅为表层规避——使 CMS 得以建链却掩盖了NODE_COUNT仍为 2 的事实。后续一旦执行cms node -del 1原本可连通的占位节点变为完全不存在的节点故障即由集群假死升级为进程无法启动。同一环境先后发生两次故障其成因正在于此。②cms.ini共享路径指向实际目录配置项模板默认值错误应修改为SHARED_PATH/home/ogracdba/data/data/home/用户/data_EXIT_NUM_COUNT_FILE/home/ogracdba/data/exit_num.txt/home/用户/data/exit_num.txt模板预置的ogracdba账户在本机并不存在将导致 io-fence 相关操作报错。③ GCC 元数据NODE_COUNT关键变更项source~/.bashrccd~/data cms gcc-exp/tmp/gcc.expsed-i3s/^0,2,/0,1,//tmp/gcc.exp# NODE_COUNT 由 2 修正为 1head-6/tmp/gcc.exp# 确认第 3 行已变更为 0,1,x,xechoy|cms gcc-imp/tmp/gcc.exp# 导入需应答确认rm-f/tmp/gcc.exp两项操作要点gcc -imp为交互式命令脚本化执行时须通过echo y |传入确认该操作将整体替换 GCC 数据且不可回滚执行前务必完成cms gcc -backup。变更范围仅限NODE_COUNT字段资源定义部分保持原样。④ 删除资源禁用标记rm-f~/data/res_disable该文件存在时即使 CMS 运行正常亦不会拉起数据库资源。通常为此前人工维护操作所遗留。⑤ 删除残留锁文件rm-f~/data/cms_server.lck进程已停止但锁文件残留时新实例启动将报Another cms server is running。五、启动服务source~/.bashrccd~nohupcms server-start~/data/log/cms_startup.log21sleep8cmsstat-server# 须确认 SRV_READY TRUE 后方可继续nohupogracd-D~/data~/data/log/ogracd_startup.log21sleep25cmsstat-resdb# 预期为 ONLINE启动顺序不可颠倒。ogracd依赖 CMS 提供的 UDS socket若 CMS 尚未就绪即启动数据库重试 5 次后将触发 ABORT 机制终止进程因此须确认SRV_READY TRUE后再执行下一步。正常状态输出NODE_ID SRV_READY 0 TRUE NODE_ID RESOURCE_NAME STAT TARGET_STAT 0 db ONLINE ONLINE补充 SQL 连通性验证printfy\nselect name, status, open_status from dv_database;\nexit;\n\|ogsql用户/密码127.0.0.1:1611# 预期输出 OGRAC / OPEN / READ WRITE历史日志中累积的192.168.86.2连接报错属故障发生前的存量记录无须清理确认修复后不再新增即可。六、经验要点单节点部署不等同于单节点配置。安装完成后须手工完成配置收敛安装模板默认按双节点生成。收敛须覆盖两个层面。文本配置层与 GCC 二进制元数据层缺一不可仅处理前者将导致故障复发。cms node -list输出正常不足以排除隐患须通过cms gcc -exp校验NODE_COUNT且历史备份均带有相同缺陷gcc -restore无法修复。数据库异常退出应优先排查 CMS。ogracd会因 CMS 失联而主动触发 ABORT其通常是受影响方而非故障源。附变更清单便于回滚文件 / 对象配置项残留值正确值cfg/cluster.iniCLUSTER_SIZE21cfg/cluster.iniNODE_IP[1]等 4 项192.168.86.2 / 127.0.0.1删除整行cfg/cms.iniSHARED_PATH/home/ogracdba/data/data/home/用户/datacfg/cms.ini_EXIT_NUM_COUNT_FILE/home/ogracdba/…/home/用户/data/exit_num.txtGCC 元数据NODE_COUNT21data/res_disable资源禁用标记存在删除data/cms_server.lck残留锁文件存在删除配置文件回滚使用cp覆盖原文件GCC 回滚使用cms gcc -restore但须注意恢复后NODE_COUNT仍为错误值 2须按变更项 ③ 重新处理。