转 -- Oracle 中间常见启动故障的疑难解答

Oracle 中间常见启动故障的疑难解答

原址如下:

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 中间常见启动故障的疑难解答_第1张图片
                                                         来源: 专家 Oracle RAC 12 c

             

整个 Oracle 群集堆栈和自动注册在群集上的服务出来当一个节点重新启动时,或如果群集堆栈手动启动。启动过程中隔离在五 (05) 层面,在每个层面,不同的过程都在一个序列中开始。

对节点重新启动/飞机失事,init 进程在操作系统上的滋生 init.ohasd (如在 /etc/inittab 文件中所述),这反过来开始 Oracle 高可用性服务守护程序 (ohasd)。Ohasd 守护进程负责关闭其他关键的群集守护进程启动。

新的 oraagent 和 oraclerootagent 图层然后提出了群集守护进程同步 (cssd),群集准备好服务 (crsd),事件管理器守护程序 (evmd) 和其他剩下的除了 ASM,RDBMS 群集堆栈实例和群集在各个级别上的其他资源。

全群集的群集命令

与 Oracle 11gR2,现在可以启动、 停止和验证的从一个单一的节点的所有节点的群集状态。Oracle 11gR2 前,您必须登录到单个节点来启动、 停止和验证群集的健康状态。下面是一些全群集的群集命令:

  • $./ crsctl 检查群集 — — 所有 [验证在所有节点上的群集状态]
  • $./ crsctl 停止群集 — — 所有 [停止群集的所有节点上]
  • $./ crsctl 启动群集 — — 所有 [开始群集的所有节点上]
  • $./ crsctl 检查群集 — — n <nodename>[验证特定远程节点上的群集状态]

常见的群集启动问题的疑难解答

一旦你理解的启动顺序和如何在 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' 错误。主要原因如下:

  • 验证是否 /etc/inittab 文件包含要自动启动的 ohasd 过程的条目。
  • 确保使用的 'crsctl 配置 crs' 命令来配置群集自动启动。为任何原因,它不是自动启动配置,启用自动启动和手动启动群集。
  • $ORA_GRID_HOME/日志/hosname 位置下的 alert.log 和 ohasd.log 文件,请参阅。
  • 请确保该节点具有访问 OLR 和 OCR/投票磁盘没有问题。这可以验证警报或 ohasd 日志文件中。

情况下 群集同步服务守护进程 (cssd) 启动失败或报告的不健康状态,请按照以下指导方针来解决问题:

  • 验证不是是活跃在 OS cssd.bin: ps – ef |grep cssd.bin
  • 检查警报日志和 ocssd.log 文件中
  • 确保没有对表决磁盘可访问性的问题
  • 另外,请检查网络节点之间的心跳
  • 运行 crsctl Stat res — — t — — init,和如果 crsd 过程是不健康的手动启动它

$。 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) 启动失败或不健康的您可以执行以下检查表的报告:

  • 验证 crsd.bin 过程是否位于 OS: ps – ef |grep crsd.bin
  • 警报日志和 crsd 日志以获取有关性质问题的有用信息,请参阅
  • 检查使用上面的命令,资源的状态,手动启动它,如果之前状态的目标处于脱机状态
  • 确保 OCR 磁盘都可以访问该节点,而且没有 OCR 腐败

如果你不能解决的问题,审查上述参考线,您可能需要联系 Oracle 支持,并提供所需的全部信息,探讨进一步的问题。

CRS 日志和目录层次结构

每个组件的网格基础设施 (停) 维护一个单独的日志文件和重要事件写入日志文件在典型情况下。写入到日志中的信息将帮助 DBAs 了解组件的当前状态,还协助群集关键问题的疑难解答。DBA 应该理解这些日志文件和能够理解的文本来解决问题的重要性。 在群集中的每个节点维护一个单独的日志目录下 $GRID_HOME/日志/<hostname>位置为群集的每个组件,如在下面的屏幕快照中所示:

转 -- Oracle 中间常见启动故障的疑难解答_第2张图片
来源: 专家 Oracle RAC 12 c

 

以下是一些最被提到的日志作为群集维护和故障排除与群集相关的各种问题,如,节点被驱逐,群集堆栈荒地,OCR/投票与磁盘相关问题等的一部分:

  • alert_hostname.log
  • crsd.log
  • ocssd.log
  • ohasd.log

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 组件

据了解 CRS 维护一个好的日志量文件的各种群集组件可供随时来诊断临界群集启动问题、 节点被驱逐和其他人的事件。如果默认的调试或日志记录信息没有提供足够的反馈,以解决任何特定的问题,你可以去和增加的调试/跟踪特定的组件或群集资源生成额外的调试信息,解决问题的水平。

幸运的是,Oracle 允许您调整默认跟踪 / 调试级别的任何群集组件或资源的动态。若要列出默认跟踪 / 调试设置的组件或子组件,登录为根用户和从 GRID_HOME 执行以下命令:

  • $./ crsctl 获取登录 css/crs/evm/一切

若要调整或改变默认跟踪级别,请使用下面的示例:

  • $./ crsctl 设置日志 crs crsmain = 4
  • $./ crsctl 设置日志 crs 所有-= 3 [所有组件/子-components 的 CRS 设置为级别 3]

你将不得不寻求 Oracle 支持意见之前您设置或调整的任何默认设置。若要禁用跟踪 / 调试级别设置的级别值 0。您可以设置的级别从 1 到 5。更多的价值,将会产生更多的信息和你必须密切注视的日志文件的增长和空间上的文件系统,以避免任何与空间有关的问题。

你也可以打开跟踪通过 OS 的设置 ;使用以下操作系统特定的命令:

$ 出口 SRVM_TRACE = true

一旦上述设置在任何 Unix OS 系统上,在 $GRID_HOME/cv/日志目的地下生成跟踪/日志文件。一旦你退出终端,跟踪将会结束。

Oracle停故障排除 — — 工具 & 实用程序

Oracle DBA 的主要责任之一是管理和故障排除的群集系统。在中,DBA 必须意识到所有的内部和外部工具和 Oracle 维护和诊断群集问题所提供的实用程序。理解和权衡利弊的每个个别的工具实用程序是必不可少的。 你必须有一个很大的知识,应选择该正确工具实用程序在适当的时刻 ;否则,你不只会浪费时间来解决这一问题,相反,会有一个长时间的服务中断。

让我通过 zip 并解释你的好处的一些非常重要的和最常用的工具和实用程序在这里。

  • 群集验证实用程序 (无级变速) — — 用于收集前和群集安装后配置各个层次和各种组件的详细信息。与 11gR2,它还提供验证群集健康的能力。看看一些有用下面的命令:

$./ cluvfy 组件运行状况检查 — — 收集群集 — — 最佳操作 — — html 
$./ cluvfy 组件运行状况检查 — — 收集群集 |database

  • 实时 RAC DB 监视 (oratop) — — 是一个外部 Oracle 实用程序,在 Linux 平台上,提供了 OS 特定的顶级相似的输出在那里,您可以监视 RAC 当前可用的数据库/单实例数据库在真正的时间。窗口提供统计数据实时,如: DB 顶部事件、 顶尖的 Oracle 进程,阻止会话信息等。你必须从支持下载 oratop.zip。Oracle.com 和配置它。
  • RAC 配置审计工具 (RACcheck) — — 然而另一个 Oracle 提供开发的 RAC 支持团队在各个群集配置上执行审计的外部工具。你必须从支持下载工具 (raccheck.zip)。Oracle.com 和在其中一个群集节点上配置它。该工具可执行群集范围内配置审核在 CRS、 ASM、 关系数据库管理系统和通用的数据库参数设置。此工具还可以用于评估系统升级的准备。 然而,你需要保持升级工具得到的最新建议。
  • 群集诊断收集工具 (diagcollection.sh) — — 自从群集管理日志文件很多,有时它将耗费时间和繁琐的访问请参阅所有日志,以了解问题的性质或诊断问题。Diagcollection.sh 工具是指不同的群集日志文件,并收集所需的信息来诊断群集的关键问题。有了这个工具,您可以收集各级工作做一个统计信息: 群集,RDBMS,岩心分析、 数据库等。该工具封装在一个 zip 文件中的所有文件,并删除单个文件。以下。 作为运行 diagcollection 的一部分收集的 zip 文件: 
     
    • ocrData_hostname_date.tar.gz è 包含 ocrdump,ocrcheck 等
    • coreData_hostname_date.tar.gz à 包含 CRS 核心文件
    • osData_hostname_date.tar.gz à OS 日志
    • ocrData_hostname_date.tar.gz à OCR 详细信息

示例:

$./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 等都是可供您在不同情况下使用。

简单地说, 本文让你明白群集启动序列,如何的东西开始在节点上重新启动并提供解决最常见的参考线面临群集启动问题通过分析群集日志,使用适当的工具/实用程序进行讨论。






你可能感兴趣的:(转 -- Oracle 中间常见启动故障的疑难解答)