我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。
今天分享一个前几天网友遇到的集群环境中CRS无法随操作系统自动启动,但是手动执行crsctl start crs时集群和资源都可以正常启动的案例。这个案例虽然比较简单,但却非常经典。类似的问题曾经在11.2.0.4配合RHEL7时也出现过。其根本原因在于操作系统大版本的变化迭代,Oracle通过小版本更新来支持新操作系统。当操作系统大版本更新、引入新功能或取消部分老功能时,Oracle环境中就可能出现兼容性问题。
为什么说这样的案例简单?因为Oracle在安装文档中会明确标识在新版本中需要做哪些修改,但很多DBA在安装时,往往凭经验操作,没有仔细阅读Oracle官方文档中针对每种操作系统、每个版本、每个PSU或RU的具体要求,最终导致了类似问题的发生。其实只要查阅官方文档,就能快速定位并解决问题。
1 环境介绍
对方介绍操作系统采用RHEL 9.5版本,数据库为19C环境。
2 故障现象
集群环境中主机启动时ohasd进程会自动启动,但cssd、crsd等所有集群进程不会自动启动,但是手工执行crsctl start crs可正常启动集群及资源。
3 故障处理
这个故障比较简单,并且对方把故障现象描述也非常清楚,所以只需要几步就可以解决。
3.1 信息确认
虽然对方现象描述很清楚,但是故障处理时,还是需要对方确认相关信息
- 确认ohasd是否启动
htz19c1[root]/root# systemctl status oracle-ohasd
oracle-ohasd.service - Oracle High Availability Services
Loaded: loaded (/etc/systemd/system/oracle-ohasd.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/oracle-ohasd.service.d
└─00_oracle-ohasd.conf
Active: active (running) since Tue 2025-07-15 16:39:52 +07; 5h 22min ago
Main PID: 7565 (init.ohasd)
Tasks: 2 (limit: 3355442)
Memory: 94.5M
CPU: 1min 12.719s
CGroup: /system.slice/oracle-ohasd.service
├─7565 /bin/sh /etc/init.d/init.ohasd run "/dev/null" "2>&1" "</dev/null"
└─321836 /bin/sleep 1
Jul 15 16:39:52 htz19c1 systemd[1]: Started Oracle High Availability Services.
Jul 15 16:39:52 htz19c1 root[7615]: Starting execution of Oracle Clusterware init.ohasd
Jul 15 16:39:52 htz19c1 clsecho[7634]: /etc/init.d/init.ohasd: Found cgroup2fs on /sys/fs/cgroup/, full unified hierarchy
Jul 15 16:39:52 htz19c1 init.ohasd[7634]: /etc/init.d/init.ohasd: Found cgroup2fs on /sys/fs/cgroup/, full unified hierarchy
从上面日志中可以确认ohasd服务已经正常启动。
- 集群是否启用自动启动
识别内容如下:
htz19c1[root]/root# crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.
从日志可以看到集群开启了自动启动服务
- 确认集群进程是否启动
htz19c1[root]/root# ps -ef | grep d.bin
root 295122 290857 0 21:34 pts/0 00:00:00 grep --color=auto d.bin
- 资源autostart是否启用
这里网友并未提供记录,而是直接表达已经确认过,开启了资源的自动启动。
如果需要查询,可以使用下面的命令:
crsctl stat res ora.crsd -p|grep autostart
3.2 信息确认总结
从上面的信息基本可以得到如下的结论:
- Oracle集群及依赖环境没有问题。
- 网友描述的现象完全正确。
3.3 原因推断
可能是由于Oracle 19c与RHEL9版本的兼容性问题,那么查阅官方文档,连接如下:
https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/supported-red-hat-enterprise-linux-9-distributions-for-x86-64.html
看到如下的关键字:
chkconfig (for Oracle Database and Oracle RAC only)
通过与网友确认是否安装了chkconfig软件包,网友反馈没有安装。
4 解决方案
安装chkconfig软件。
5 总结及建议
本案例虽然处理过程简单,但却极具代表性。它再次提醒我们,随着操作系统和数据库版本的不断升级,Oracle对不同平台和版本的兼容性要求也在不断变化。每一次安装和配置,都不能仅凭以往经验或“惯性思维”操作,而应仔细查阅并严格遵循Oracle官方文档的最新要求。
建议大家:
- 在部署或升级Oracle集群环境时,务必提前查阅官方文档,关注每个操作系统版本、数据库补丁集(PSU/RU)对依赖组件和配置的具体要求。
- 不同操作系统版本间的细微差异,可能会导致集群服务无法自动启动等隐蔽问题,务必引起足够重视。
- 建议建立标准化的安装、升级和巡检流程,确保每一步都符合Oracle官方最佳实践,避免因小失大。
- 对于新版本操作系统,建议在测试环境充分验证后再上线生产,及时关注Oracle MOS和官方文档的最新兼容性说明。
总之,细节决定成败,规范化、文档化的运维习惯,是保障Oracle集群高可用和稳定运行的基石。希望大家引以为戒,持续学习和提升!
——————作者介绍———————–
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)
故障处理:CRS无法随操作系统自动启动故障案例分享:等您坐沙发呢!