ora..db 的 AUTO_START 属性默认不是 always;必须显式执行 crsctl modify resource 命令将其设为 always,CRS 才会在节点重启时自动启动该数据库实例。
ora..db 的 AUTO_START 属性是否为 always
oracle rac 数据库资源默认不随集群自动启动,这是最常见原因。crs 只在明确配置 auto_start=always 时才尝试拉起数据库实例。
检查当前值:crsctl stat res ora.racdb.db -p | grep AUTO_START
修改为 always(以 ora.racdb.db 为例):crsctl modify resource ora.racdb.db -attr "AUTO_START=always"
注意:
• 必须以 grid 用户执行该命令
• 修改后无需重启 CRS,但需确保节点已 reboot 或手动 reload 资源状态
• 若数据库名含特殊字符(如点号),需用引号包裹资源名
srvctl enable database 是否真正生效
srvctl enable database 仅设置数据库的“启用”状态,并不等价于 CRS 层面的自动启动控制;它影响的是 srvctl start cluster 行为,而非系统级开机自启流程。
实际效果取决于底层 CRS 配置:
• 即使运行了 srvctl enable database -d racdb,若 AUTO_START 仍为 restore 或 never,数据库仍不会随集群启动
• 检查优先级:CRS 层属性 > srvctl enable 状态
• 建议统一使用 crsctl modify resource ... -attr "AUTO_START=always" 控制,避免混淆
OHASD 启动后 CSSD 是否成功完成成员资格协商
如果 ocssd.bin 卡在 starting 状态,后续所有依赖服务(ASM、CRSD、数据库)都无法启动。典型日志报错:has a disk HB, but no network HB
这说明 CSSD 检测到了磁盘心跳(voting disk 可访问),但网络心跳失败——根本原因常是:
• NetworkManager 服务干扰私网接口(尤其 RHEL6/7)
• 私网 IP 被 DHCP 重分配或绑定异常
• 防火墙拦截 UDP 12345/12346 端口(CSSD 默认通信端口)
• /etc/hosts 中私网 hostname 解析错误或缺失
验证方式:crsctl stat res -t -init 查看 ora.cssd 状态tail -f $GRID_HOME/log/<nodename>/cssd/ocssd.log</nodename> 定位首条 error 级别日志
ASM 实例是否已就绪且能被 CRSD 正确访问 OCR
CRSD 启动前必须能读写 OCR 和 voting disk,而这两者都托管在 ASM 上。若 ASM 实例未就绪或磁盘组未 mount,CRSD 将反复 retry 并最终超时退出。
关键检查点:
• crsctl stat res ora.asm 应为 ONLINE
• asmcmd lsdg 显示 OCR 所在磁盘组(通常是 +OCR)状态为 MOUNTED
• ocrcheck 返回 Status of Oracle Cluster Registry is as follows : + OK
• 若 ASM 使用 Flex ASM 模式,确认 ora.asm 资源的 PLACEMENT 属性与当前节点兼容
容易忽略的一点:OCR 备份路径(ocrconfig -showbackup)若指向本地文件系统且磁盘满,也会导致 CRSD 初始化失败,但错误日志可能不直接提示。











