故障处理:CRS无法随操作系统自动启动故障案例分享

news/2025/9/18 22:03:09/文章来源:https://www.cnblogs.com/www-htz-pw/p/19099818

我们的文章会在微信公众号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-ohasdoracle-ohasd.service - Oracle High Availability ServicesLoaded: loaded (/etc/systemd/system/oracle-ohasd.service; enabled; preset: disabled)Drop-In: /etc/systemd/system/oracle-ohasd.service.d└─00_oracle-ohasd.confActive: active (running) since Tue 2025-07-15 16:39:52 +07; 5h 22min agoMain PID: 7565 (init.ohasd)Tasks: 2 (limit: 3355442)Memory: 94.5MCPU: 1min 12.719sCGroup: /system.slice/oracle-ohasd.service├─7565 /bin/sh /etc/init.d/init.ohasd run "/dev/null" "2>&1" "</dev/null"└─321836 /bin/sleep 1Jul 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)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/907461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02020401 EF Core基础01-EF Core简介和开发环境搭建、实体类、配置类、继承DbContex的类、Migration包的使用

02020401 EF Core基础01-EF Core简介和开发环境搭建、实体类、配置类、继承DbContex的类、Migration包的使用 1. EF Core简介(视频3-1)本课程需要你有数据库、SQL等基础知识。关系数据库:MySql、SQL Server、Oracle…

专用通路方式

-取址周期 1.从pc取址到mar (pc)->mar 此时c0有效 2.把刚才的值交给内存 (mar)->内存 c1 3.让内存读取mar中保存的值 1->r 4.让mdr获取内存刚刚读取的mar中保存的代码值 MEM(MAR)->MDR C2 5.再让IR(指令…

typeof()

C# 中的 typeof() 是啥?一句话讲清楚:typeof() 就是“问编译器:这个类型长啥样?”它不是运行时去查对象,而是编译时就确定你写的那个“类名、接口名、结构名”到底是谁,然后返回一个叫 Type 的对象,这个对象里装…

详细介绍:【C++】C++类和对象—(中)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【未完成】2025.9 做题记录

CF1310C CF616F CF1065G CF1536F. Omkar and Akmar *2600 题意 Alice 和 Bob 在一个 \(n\) 个格子的环上玩游戏,环上的格子编号为 \(1\sim n\)。 每一轮中,玩家可选择一个空格子填入字母 A 或 B,同时要求不能存在两…

【9月中】

【9月中】rating:1173 已经好几个月没更新近况了,期末月,暑假回来 3 场 XCPC 初体验,意料之外,未曾想过,受宠若惊,还是菜鸡,JXCPC 垫底,网络赛爆零 我到底为什么还要走这条路啊,明明没有希望,而且就算自己这…

08-分组函数

08-分组函数$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");介绍 分组函数的执行原则:先分组,然后对每一组数据执行分组函数。如果没有分组语句group by的…

Stanford CS336 | Assignment 1 - Transformer Language Model Architecture - 详解

Stanford CS336 | Assignment 1 - Transformer Language Model Architecture - 详解2025-09-18 21:47 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; ove…

2025.8 做题记录

P4064 [JXOI2017] 加法 蓝 题意 可怜有一个长度为 \(n\) 的正整数序列 \(A\),但是她觉得 \(A\) 中的数字太小了,这让她很不开心。 于是她选择了 \(m\) 个区间 \([l_i,r_i]\) 和两个正整数 \(a,k\)。她打算从这 \(m\)…

关于 “Thinking Machines Lab首次发长文” 的一些知识的学习和补充

1. 前言砚上三五笔,落墨鹧鸪啼原文链接: https://thinkingmachines.ai/ 相关分析链接:https://www.gongjiyun.com/blog/2025/9/fu1xw1spci9vnokjipecs9y9nzn/最近看到一篇名为《击败 LLM 推理中的非确定性:从“玄学…

python编程练习(Day4) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CF1630F 题解 | 网络流

传送门 题意 给你一个长度为 \(n\) 的序列 \(a\),构建一个无向图:若 \(a_i | a_j\),则在 \(i\) 和 \(j\) 中连边。 求最少删除多少个点,才能使得剩下的图是二分图。 思路 首先,我们知道倍数关系是一个偏序关系,即…

攻防世界-secret-galaxy-300 - xxx

先查壳,无壳,32位程序先运行一下这个exe程序,发现闪一下就消失了,也没有什么提示字符串可查看。打算先去od里面运行看看 打开后没看到什么,查看字符串一时间也没看出什么,不过这个task函数倒是让控制台输出一堆奇…

完整教程:运维安全05,iptables规则保存与恢复

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)

实用指南:LeetCode 面试经典 150_哈希表_单词规律(41_290_C++_简单)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

代码随想录算法训练营第二天 | leetcode 209

长度最小的子数组(没做出来) 题目要求:寻找一个数组中满足大于等于目标要求的最小子数组 解题思路:返回结果可能是不存在,所以需要定义一个合适的初始值,可以使用java的最大数Integer.MAX_VALUE,然后使用滑动窗…

mpv硬件解码

mpv --hwdec=yes --vo=vappi 3e559881c836c30321894b20ae102c4e.mp4

2025.9.78——卷6-8选择

卷6选择 大O表示法 大O表示法由​​德国数学家保罗巴赫曼(Paul Bachman)提出,用于表示算法的最坏情况下时间复杂度 Θ表示法 Θ表示法通常归功于​​计算机科学家Donald Knuth​​等人,用于描述算法的平均时间复杂…

07-日期和时间相关函数

07-日期和时间相关函数$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");获取当前日期和时间now()和sysdate()的区别:now():获取的是执行select语句的时刻。…

关于pytorch的读书报告

PyTorch 读书报告 一、引言 PyTorch 是由 Facebook(现 Meta)人工智能研究实验室开发的一款开源机器学习框架,自 2016 年推出以来,凭借其动态计算图特性、简洁直观的 API 设计以及强大的生态系统,迅速成为学术界和…