检查oracle服务实例失败,oracle_导致实例逐出的五大问题

检查oracle服务实例失败,oracle_导致实例逐出的五大问题

2023年8月2日发(作者:)

检查oracle服务实例失败,oracle_导致实例逐出的五⼤问题In this DocumentApplies to:OracleDatabase - Enterprise Edition - Version 10.2.0.1 to 11.2.0.3[Release 10.2 to 11.2]Information in this document applies to e本⽂档针对导致实例驱逐的主要问题为 DBA 提供了⼀个快速概述。ScopeDBADetails问题 1:警报⽇志显⽰ ora-29740 是实例崩溃/驱逐的原因症状:实例崩溃,警报⽇志显⽰“ORA-29740:evicted by member ...(被成员...驱逐)”错误。可能的原因:⼀个实例将另⼀个实例从 RAC 数据库驱逐时,出现了 ORA-29740 错误。被驱逐的实例会在警报⽇志中报告 ora-29740错误。此问题的部分原因是集群中的通信错误、向控制⽂件发送“⼼跳”失败以及其它原因。检查所有实例的 lmon 跟踪⽂件,这对确定实例驱逐的原因代码⽽⾔⾮常重要。查找包含“kjxgrrcfgchk:Initiatingreconfig”的⾏。这将提供⼀个原因代码,如“kjxgrrcfgchk:Initiating reconfig, reason3”。实例驱逐时发⽣的⼤多数 ora-29740 错误是由于原因 3(“通信故障”) 造成的。Document 219361.1(TroubleshootingORA-29740 in a RAC Environment) 介绍了以下⼏种可能造成原因 3的 ora-29740错误原因:a) ⽹络问题。b) 资源耗尽(CPU、I/O 等)c) 严重的数据库争⽤。d) Oracle bug。解决⽅案:1) 检查⽹络,确保⽆⽹络错误,如 UDP 错误或 IP 数据包丢失或故障错误。2) 检查⽹络配置,确保所有节点上的所有⽹络配置均设置正确。例如,所有节点上 MTU的⼤⼩必须相同,并且如果使⽤巨帧,交换机也能够⽀持⼤⼩为 9000 的 MTU。3) 检查服务器是否存在 CPU 负载问题或可⽤内存不⾜。4) 检查数据库在实例驱逐之前是否正处于挂起状态或存在严重的性能问题。5) 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、⽹络问题或者lmd 或 lms 进程出现死循环。CHM 输出只能在特定平台和版本中使⽤,因此请参阅 CHM 常见问题Document1328466.16) 如果 OSWatcher 尚未设置,请按照Document301137.1中的说明进⾏设置以运⾏OSWatcher。CHM 输出不可⽤时,使⽤ OSWatcher输出将有所帮助。问题 2:警报⽇志在实例崩溃或驱逐前显⽰“ipc send timeout”错误症状:实例驱逐时,警报⽇志显⽰许多“IPC send timeout”错误。此消息通常伴随数据库性能问题。可能的原因:在 RAC 中,数据库进程,例如 lmon、lmd 和 lms 会不断地和其他实例的进程通信。lmd0 进程负责管理enqueue,⽽ lms 进程负责管理数据块资源并传输数据块以⽀持 CacheFusion。如果这些进程中的⼀个或多个受阻、死循环或异常繁忙,则可能导致“IPC send timeout(IPC发送超时)”错误。lmon、lms 和 lmd 进程报告“IPC send timeout”错误的另⼀个原因是⽹络问题或服务器资源(CPU和内存)问题。这些进程可能⽆法获得 CPU 运⾏调度或这些进程发送的⽹络数据包丢失。涉及 lmon、lmd 和 lms 进程的通信问题导致实例驱逐。被驱逐实例的警报⽇志显⽰的信息类似于如下⽰例IPC Send timeout : ospid 1519Receiver: inst 8 binc 997466802 ospid 23309如果某实例被驱逐,警报⽇志中的“IPC Send timeout detected(检测到 IPC 发送超时)”通常伴随着其它问题,如ora-29740 和“Waiting for clusterware split-brainresolution(等待集群件“脑裂”解决⽅案)”解决⽅案:此处的解决⽅案与问题 1 相似。1) 检查⽹络,确保⽆⽹络错误,如 UDP 错误或 IP 数据包丢失或故障错误。2) 检查⽹络配置,确保所有节点上的所有⽹络配置均设置正确。例如,所有节点上 MTU的⼤⼩必须相同,并且如果使⽤巨帧,交换机也能够⽀持⼤⼩为 9000 的 MTU。3) 检查服务器是否存在 CPU 负载问题或可⽤内存不⾜。4) 检查数据库在实例驱逐之前是否正处于挂起状态或存在严重的性能问题。5) 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、⽹络问题或者lmd 或 lms 进程出现死循环。CHM 输出只能在特定平台和版本中使⽤,因此请参阅 CHM 常见问题Document1328466.16) 如果 OSWatcher 尚未设置,请按照Document301137.1中的说明进⾏设置以运⾏OSWatcher。CHM 输出不可⽤时,使⽤ OSWatcher输出将有所帮助。问题 3:在实例崩溃或驱逐前,问题实例处于挂起状态症状:在实例崩溃/驱逐前,该实例或数据库正处于挂起状态。当然,也可能是节点挂起。可能的原因:由于 lmon、lmd 和 lms 等不同进程与其它实例上对应的进程通信,因此当实例和数据库挂起时,这些进程可能正在等待某个资源,如latch、enqueue或数据块。这些等待中的进程得不到⽹络响应,或⽆法通过⽹络向远程实例发送任何通信。因此,其它实例将驱逐问题实例。在执⾏驱逐其他实例动作的实例警报⽇志中,您可能会看到与以下消息类似的消息:Remote instance kill is issued [112:1]:8或者Evicting instance 2 from cluster解决⽅案:1) 查找数据库或实例挂起的原因。对数据库或实例挂起问题进⾏故障排除时,获取全局 systemstate 转储和全局hanganalyze 转储是关键。如果⽆法获取全局 systemstate 转储,则应获取在⼤致相同时间所有实例的本地systemstate 转储。2) 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、⽹络问题或者lmd 或 lms 进程出现死循环。CHM 输出只能在某些平台和版本中使⽤,因此请参阅 CHM 常见问题Document1328466.13) 如果 OSWatcher 尚未设置,请按照Document301137.1中的说明进⾏设置以运⾏OSWatcher。CHM 输出不可⽤时,使⽤ OSWatcher 输出将有所帮助。问题 4:在⼀个或多个实例崩溃或驱逐前,警报⽇志显⽰“Waiting for clusterware split-brainresolution(等待集群“脑裂”解决⽅案)”症状:在⼀个或多个实例崩溃之前,警报⽇志显⽰“Waiting for clusterware split-brainresolution(等待集群件“脑裂”解决⽅案)”。这通常伴随着“Evicting instance n fromcluster(从集群驱逐实例 n)”,其中 n 是指被驱逐的实例编号。可能的原因:lmon 进程向远程实例发送⼀个⽹络 ping,如果远程实例上的 lmon 进程不响应,则出现实例级别的“脑裂”。因此,查找 lmon不能相互通信的原因对解决此问题⽽⾔⾮常重要。常见原因有:1) 实例级别的“脑裂”通常由⽹络问题导致,因此检查⽹络设置和连接⾮常重要。但是,因为如果⽹络已关闭,集群件 (CRS)就会出现故障,所以只要 CRS和数据库使⽤同⼀⽹络,则⽹络不太可能会关闭。 2) 服务器⾮常繁忙和/或可⽤内存量低(频繁的交换和内存扫描),将阻⽌ lmon 进程被调度。3) 数据库或实例正处于挂起状态,并且 lmon 进程受阻。4) Oracle bug以上原因与问题 1的原因相似(警报⽇志显⽰ ora-29740 是实例崩溃/驱逐的原因)。解决⽅案:此处的解决⽅案与问题 1 相似。1) 检查⽹络,确保⽆⽹络错误,如 UDP 错误或 IP 数据包丢失或故障错误。2) 检查⽹络配置,确保所有节点上的所有⽹络配置均设置正确。例如,所有节点上 MTU的⼤⼩必须相同,并且如果使⽤巨帧,交换机也能够⽀持⼤⼩为 9000 的 MTU。3) 检查服务器是否存在 CPU 负载问题或可⽤内存不⾜。4) 检查数据库在实例驱逐之前是否正处于挂起状态或存在严重的性能问题。5) 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、⽹络问题或者lmd 或 lms 进程出现死循环。CHM 输出只能在特定平台和版本中使⽤,因此请参阅 CHM 常见问题Document1328466.16) 如果 OSWatcher 尚未设置,请按照Document301137.1中的说明进⾏设置以运⾏OSWatcher。CHM 输出不可⽤时,使⽤ OSWatcher输出将有所帮助。问题 5:另⼀个实例尝试驱逐问题实例,但由于⼀些原因未能成功驱逐,最终CRS会终⽌该问题实例。症状:⼀个实例驱逐其他实例时,在问题实例⾃⼰关闭之前,所有实例都处于等待状态,但是如果问题实例因为某些原因不能终⽌⾃⼰,发起驱逐的实例将发出Member Kill 请求。Member Kill 请求会要求 CRS 终⽌问题实例。此功能适⽤于 11.1及更⾼版本。可能的原因:要求 CRS 终⽌问题实例的实例警报⽇志显⽰Remote instance kill is issued [112:1]:8例如,以上消息表⽰终⽌实例 8 的 Member Kill 请求已发送⾄ CRS。问题实例由于某种原因正处于挂起状态且⽆响应。这可能是由于节点存在 CPU 和内存问题,并且问题实例的进程⽆法获得 CPU运⾏调度。第⼆个常见原因是数据库资源争⽤严重,导致问题实例⽆法完成远程实例驱逐该实例的请求。另⼀个原因可能是由于实例尝试中⽌⾃⼰时,⼀个或多个进程“幸存”了下来。除⾮实例的所有进程全部终⽌,否则 CRS不认为该实例已终⽌,⽽且不会通知其它实例该问题实例已经被终⽌。这种情况下的⼀个常见问题是⼀个或多个进程变成僵⼫进程且未终⽌。并导致CRS通过节点重启或 rebootless restart( CRS重新启动但节点不重启)进⾏重新启动。这种情况下,问题实例的警报⽇志显⽰Instance termination failed to kill one or more processesInstance terminated by LMON, pid = 23305(实例终⽌未能终⽌⼀个或多个进程实例被 LMON, pid = 23305 终⽌)解决⽅案:此问题的解决⽅案与问题 3 相似1) 查找数据库或实例挂起的原因。对数据库或实例挂起问题进⾏故障排除时,获取全局 systemstate 转储和全局hanganalyze 转储是关键。如果⽆法获取全局 systemstate 转储,则应获取在⼤致相同时间所有实例的本地systemstate 转储。2) 检查 CHM (Cluster Health Monitor) 输出,以查看服务器是否存在 CPU 或内存负载问题、⽹络问题或者lmd 或 lms 进程出现死循环。CHM 输出只能在某些平台和版本中使⽤,因此请参阅 CHM 常见问题Document1328466.13) 如果 OSWatcher 尚未设置,请按照Document301137.1中的说明进⾏设置以运⾏OSWatcher。CHM 输出不可⽤时,使⽤ OSWatcher 输出将有所帮助.ReferencesNOTE:1328466.1-Cluster Health Monitor (CHM) FAQNOTE:1375405.1-Top 5 RAC Instance Crash IssuesNOTE:219361.1-Troubleshooting ORA-29740 in a RAC EnvironmentNOTE:301137.1-OSWatcher Black Box User Guide (Includes: [Video])

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690958192a472934.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信