原址如下:
http://www.toadworld.com/platforms/oracle/b/weblog/archive/2014/01/28/troubleshooting-oracle-clusterware-common-startup-failures.aspx
作为 Oracle DBA 在非群集环境中,你的责任有限管理、 故障排除和诊断属于数据库技术的问题。相反,你将会有额外的责任管理中间和它在群集环境中的问题进行故障排除。这篇文章的目的是帮助您了解有关停启动序列的基础知识并解决最常见的中间启动失败。 此外,这篇文章还遗嘱重点放在一些有用的工具,实用程序确定停相关问题的根本原因的手上。
在我的角度和个人的经验,下面是一些大多数 DBAs 在群集环境中面临的挑战:
这是值得了解的东西得到如何启动或停止同时管理和故障诊断系统。在这段,我们将密切看看如何开始堆栈组件是 Oracle 中间,和在该序列中他们来上一个节点重新启动或手动群集启动。这种理解将大大有助于解决大多数群集堆栈共同启动失败,给了你一眼就从哪里开始调查,以防任何群集组件不能启动。
下面的图表描述了不同级别的 Oracle 群集堆栈 (组件) 启动序列:
整个 Oracle 群集堆栈和自动注册在群集上的服务出来当一个节点重新启动时,或如果群集堆栈手动启动。启动过程中隔离在五 (05) 层面,在每个层面,不同的过程都在一个序列中开始。
对节点重新启动/飞机失事,init 进程在操作系统上的滋生 init.ohasd (如在 /etc/inittab 文件中所述),这反过来开始 Oracle 高可用性服务守护程序 (ohasd)。Ohasd 守护进程负责关闭其他关键的群集守护进程启动。
新的 oraagent 和 oraclerootagent 图层然后提出了群集守护进程同步 (cssd),群集准备好服务 (crsd),事件管理器守护程序 (evmd) 和其他剩下的除了 ASM,RDBMS 群集堆栈实例和群集在各个级别上的其他资源。
与 Oracle 11gR2,现在可以启动、 停止和验证的从一个单一的节点的所有节点的群集状态。Oracle 11gR2 前,您必须登录到单个节点来启动、 停止和验证群集的健康状态。下面是一些全群集的群集命令:
一旦你理解的启动顺序和如何在 Oracle 群集环境中开始的事情,它会很容易对任何人进行排查和解决最常见的启动故障问题。在这段,我们将解释如何诊断一些常见的群集启动问题。
想象一下你 ' crsctl 检查群集 / crs 的命令,它给出了以下错误:
$GRID_HOME/bin/crsctl 检查群集
CRS-4639: 无法联系 Oracle 高可用性服务
CRS-4124: Oracle 高可用性服务启动失败
CRS-4000: 命令检查失败,或者完成但有错误
或
CRS-4535: 不能与群集准备好服务沟通
CRS-4530: 通信故障联系群集同步服务守护进程
CRS-4534: 无法沟通与事件管理器
我们将开始考虑的问题的组件启动失败他们通常开始的同一序列中。让我们谈谈 ohasd 启动失败,将会引起 'CRS-4639/4124/4000' 错误。主要原因如下:
情况下 群集同步服务守护进程 (cssd) 启动失败或报告的不健康状态,请按照以下指导方针来解决问题:
$。 crsctl 开始 res ora.crsd — — init
--------------------------------------------------------------------------------
名称目标状态服务器 STATE_DETAILS
--------------------------------------------------------------------------------
群集资源
--------------------------------------------------------------------------------
ora.asm
1 在线在线 rac2 已启动
ora.cluster_interconnect.haip
1 在线在线 rac2
ora.crsd
1 在线脱机 rac2
ora.cssd
1 在线在线 rac2
ora.cssdmonitor
1 在线在线 rac2
ora.ctssd
1 在线在线 rac2 观察员
ora.diskmon
1 在线在线 rac2
ora.evmd
如果您遇到 群集准备好服务守护程序 (CRSD) 启动失败或不健康的您可以执行以下检查表的报告:
如果你不能解决的问题,审查上述参考线,您可能需要联系 Oracle 支持,并提供所需的全部信息,探讨进一步的问题。
每个组件的网格基础设施 (停) 维护一个单独的日志文件和重要事件写入日志文件在典型情况下。写入到日志中的信息将帮助 DBAs 了解组件的当前状态,还协助群集关键问题的疑难解答。DBA 应该理解这些日志文件和能够理解的文本来解决问题的重要性。 在群集中的每个节点维护一个单独的日志目录下 $GRID_HOME/日志/<hostname>位置为群集的每个组件,如在下面的屏幕快照中所示:
以下是一些最被提到的日志作为群集维护和故障排除与群集相关的各种问题,如,节点被驱逐,群集堆栈荒地,OCR/投票与磁盘相关问题等的一部分:
alert_hostname.log 每个群集节点有它自己的警报日志文件和群集启动写重要和有用的信息,节点被驱逐,任何群集组件启动问题,OCR/投票与磁盘相关的信息。它因此,建议经常要知道的群集状态,在其他节点被驱逐的日志文件,请参阅或想要留意 OCR/VD 事态发展。
ocssd.log 然而另一个非常关键和重要的日志文件,需要您的关注。只要群集遇到任何严重的障碍,对于群集同步服务守护进程 (CSSD) 过程,这就是需要文件,请参阅了解问题的性质和要解决的问题太。这是一个繁忙的日志文件不断的练习和自动维护由群集。 不建议手动维护文件上的,和一旦文件大小达到为 50 MB,Oracle 自动归档文件,并创建一个新的日志文件。在中,总 10 存档日志文件是在时间维护在任何给定的点。
crsd.log 群集准备好服务守护进程 (CRSD) 过程将所有重要的事件写入到该文件,例如,群集资源启动时,停止,失败和 CRSD 健康状况。如果你有启动/停止任何群集和非群集资源的节点上的问题,请参阅此日志文件来诊断问题。也和维持的 Oracle 文件不建议的删除此文件。一旦文件的大小达到 10 MB,它会自动存档,将创建一个新的日志文件。 将会有 10 存档的文件的副本会保留在任何时间点的下。
ohasd.log 访问日志文件,并由新的 Oracle 高可用性服务守护程序 (ohasd) 工艺,在 Oracle 11gR2 中首先介绍了管理。如果您遇到任何问题,运行 root.sh 或 rootupgrade.sh 脚本,请参阅此日志文件,以了解故障排除问题。如果你面对问题开始这一进程,并且 Oracle 本地注册表 (OLR) 有任何腐败或不便的问题,也请参考本文件。 像 crsd 和 ocssd 的日志文件,该文件也由 Oracle 自动维护,档案在到达 10 MB 大小的日志文件。10 存档日志文件的总时间被维持在任何给定的点。
据了解 CRS 维护一个好的日志量文件的各种群集组件可供随时来诊断临界群集启动问题、 节点被驱逐和其他人的事件。如果默认的调试或日志记录信息没有提供足够的反馈,以解决任何特定的问题,你可以去和增加的调试/跟踪特定的组件或群集资源生成额外的调试信息,解决问题的水平。
幸运的是,Oracle 允许您调整默认跟踪 / 调试级别的任何群集组件或资源的动态。若要列出默认跟踪 / 调试设置的组件或子组件,登录为根用户和从 GRID_HOME 执行以下命令:
若要调整或改变默认跟踪级别,请使用下面的示例:
你将不得不寻求 Oracle 支持意见之前您设置或调整的任何默认设置。若要禁用跟踪 / 调试级别设置的级别值 0。您可以设置的级别从 1 到 5。更多的价值,将会产生更多的信息和你必须密切注视的日志文件的增长和空间上的文件系统,以避免任何与空间有关的问题。
你也可以打开跟踪通过 OS 的设置 ;使用以下操作系统特定的命令:
$ 出口 SRVM_TRACE = true
一旦上述设置在任何 Unix OS 系统上,在 $GRID_HOME/cv/日志目的地下生成跟踪/日志文件。一旦你退出终端,跟踪将会结束。
Oracle DBA 的主要责任之一是管理和故障排除的群集系统。在中,DBA 必须意识到所有的内部和外部工具和 Oracle 维护和诊断群集问题所提供的实用程序。理解和权衡利弊的每个个别的工具实用程序是必不可少的。 你必须有一个很大的知识,应选择该正确工具实用程序在适当的时刻 ;否则,你不只会浪费时间来解决这一问题,相反,会有一个长时间的服务中断。
让我通过 zip 并解释你的好处的一些非常重要的和最常用的工具和实用程序在这里。
$./ cluvfy 组件运行状况检查 — — 收集群集 — — 最佳操作 — — html
$./ cluvfy 组件运行状况检查 — — 收集群集 |database
示例:
$./GRID_HOME/bin/diagcollection.sh — — 收集 — — crs $GRID_HOME
$./diagcollection.sh — — 帮助
— — 收集
[— — crs]Crs 诊断信息收集
[— — 药品不良反应]为收集诊断信息的药品不良反应 ;指定 ADR 位置
[-chmos]为群集健康监视器 (OS) 数据收集
[— — 所有]Default.For 所有诊断信息都收集。<<<>>>
[— — 核心]Unix 只。包核心文件与 CRS 数据
[-afterdate]Unix 只。从指定的日期收集档案。
[— — 后世]支持-adr 选项。后指定的收集档案
[— — 以前]支持-adr 选项。收集之前指定的档案
[-crshome]参数指定位置的 CRS 的主页
[-incidenttime]收集群集健康监视器 (OS) 数据从指定的
[-incidentduration]期间收集群集健康监视器 (OS) 数据
注意:
1.你也可以做以下
./diagcollection.pl — — 收集 — — crs — — crshome < CRS 主页 >
— — 清洁清理可诊断性
此脚本所收集的资料
最重要的是,还有许多其他重要和有用的工具: 群集健康监视 (CHM) 来诊断节点驱逐问题,DB Hanganalysis、 OSWatcher、 光在显示器上,ProWatcher 等都是可供您在不同情况下使用。
简单地说, 本文让你明白群集启动序列,如何的东西开始在节点上重新启动并提供解决最常见的参考线面临群集启动问题通过分析群集日志,使用适当的工具/实用程序进行讨论。