适用于:

Oracle Database - Enterprise Edition - 版本 10.1.0.2 到 11.2.0.3 [发行版 10.1 到 11.2]
本文档所含信息适用于所有平台

用途

本文章简要概述了导致节点重新启动或者 CRS 意外重启的几个最常见问题

适用范围

有节点重新启动问题的所有用户

详细信息

问题 1:节点重新启动,但是日志文件未显示任何错误或原因。

原因: 如果节点重新启动是由于某个 Oracle 进程,但是日志文件没有显示任何错误,则故障位置为 oprocd、cssdmonitor 和 cssdagent 进程。当节点挂起一段时间或者一个或多个关键 CRS 进程无法被调度获得 CPU 时,会发生这种情况。因为那些进程都以实时优先级运行,所以问题可能是因为内存耗尽或者可用内存低,而不是因为 CPU 耗尽。也可能是由于内核交换页的工作量繁重或者正忙于扫描内存以标识要释放的页。也可能存在 OS 调度问题。

解决方案:
1) 如果 CRS 版本为 11.1 或者更低,请将 diagwait 设置为 13。
2) 如果平台为 AIX,请参照文章 811293.1(RAC and Oracle Clusterware Best Practices and Starter Kit (AIX))中所建议的方法优化 AIX VM 参数。
3) 如果平台为 Linux,请设置 Hugepage 并将内核参数 vm.min_free_kbytes 设置为保留“512MB”,将 swappiness 设置为 100。
请注意,使用 Hugepage 时无法设置 memory_target。
4) 如果问题出现在Linux 平台而且内核版本为2.6.18 (例如:OEL5, Redhat 5, SLES 10)或更低,设置内核参数swappiness 为 100。
5) 对于SLES11, RHEL6, OEL6和使用UEK2 内核的Linux 平台,停用Transparent HugePages。
6) 检查是否有大量内存分配给了操作系统的 IO 缓冲区高速缓存。与 OS 供应商联系,建议一些方法来减少 IO 缓冲区高速缓存量,或者增加从 IO 缓冲区高速缓存回收内存的比率。
7) 增加内存量。

问题 2:节点重新启动,该节点是由于丢失网络心跳而被逐出。

这是因为丢失网络心跳或 发生了脑裂。在双节点环境中,节点 2 的重复重新启动通常意味着节点 2 由于 脑裂 而被驱逐。在节点重新启动前,ocssd.log 会显示丢失网络心跳或一条脑裂消息。

原因:节点之间通过私网互连的网络通信失败。故障可能是单向或者双向的。
解决方案:修复网络问题。确保交换机和 NIC 卡等所有网络组件都正常运行。确保 ssh 能通过私网互连工作。请注意,网络通常在节点重新启动后可以恢复正常。
注意: 如果您使用了巨帧(Jumbo Frame),请参考文章341788.1 (Recommendation for the Real Application Cluster Interconnect and Jumbo Frames)。如果交换机的巨帧设置与集群私网NIC卡的MTU(巨帧)设置不同,会出现网络问题,并导致节点驱逐或CRS无法启动。 有时,如果您使用的交换机和NIC卡来自不同的厂商,它们对巨帧的支持也可能不同。

问题 3:在出现存储问题后节点重新启动。

ocssd.log 文件显示节点因为无法访问大部分 voting disks 而重新启动。

原因:CRS 必须能够访问大部分 voting disks 。如果 CRS 无法正常访问大部分 voting disks ,则 CRS 无法确保群集的一致性,所以 CRS 重新启动节点。
解决方案:修复 voting disks 的问题。确保用户 oracle 或 grid,或者CRS 或 GI HOME 的拥有者可以使用和访问 voting disks 。如果 voting disks 未在 ASM 中,请使用 "dd if= of=/dev/null bs=1024 count=10240" 测试可访问性。

问题 4:asm 或数据库实例被挂起或驱逐后节点重新启动。

正常运行节点的 ocssd.log 显示一个 member kill 请求升级到了 node kill 请求。

原因:从版本 11.1 开始,如果无法在数据库级别驱逐数据库或 asm 实例,则意味 CRS 将介入来尝试终止问题实例,这被称之为 member kill 请求。如果 CRS 无法终止该问题实例,则 CRS 会重新启动节点,因为 meber kill 请求被升级到了 node kill 请求。
解决方案:查找无法在数据库级别驱逐 asm 或数据库实例(lmon、lmd 和 lms 发起的驱逐)的原因。一个常见原因是实例正处于挂起状态,对远程实例的终止请求无法响应。另一个原因是无法终止多个实例进程中的某个进程。如进程处于不可中断的 IO 闲置状态就属于这样一个例子。

问题 5:CRS 自动重启,但是节点没有重新启动

原因:从版本 11.2.0.2 开始,如果 CRS 由于此处列出的任何原因而需要重新启动节点,CRS 会在重新启动节点之前尝试先对自身进行重启。仅当它无法成功重启自身时,CRS 才重新启动节点来强制对自身进行重启。
解决方案:检查此处列出的哪个节点重新启动原因适用,并按照针对该原因列出的解决方案进行操作。

参考

NOTE:265769.1 - Troubleshooting 10g and 11.1 Clusterware Reboots
NOTE:452326.1 - Linux Kernel Lowmem Pressure Issues and Related Kernel Structures
NOTE:811293.1 - RAC and Oracle Clusterware Best Practices and Starter Kit (AIX)
NOTE:1557478.1 - ALERT: Disable Transparent HugePages on SLES11, RHEL6, OL6 and UEK2 Kernels
NOTE:341788.1 - Recommendation for the Real Application Cluster Interconnect and Jumbo Frames
NOTE:1050693.1 - Troubleshooting 11.2 Clusterware Node Evictions (Reboots)

最常见的 5 个导致节点重新启动、驱逐或 CRS 意外重启的问题 (文档 ID 1524455.1)的更多相关文章

  1. 如何诊断 11.2 集群节点驱逐问题 (文档 ID 1674872.1)

    适用于: Oracle Database - Enterprise Edition - 版本 11.2.0.1 到 11.2.0.2 [发行版 11.2]本文档所含信息适用于所有平台 用途 这篇文档提 ...

  2. 导致实例逐出的五大问题 (文档 ID 1526186.1)

    适用于: Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 11.2.0.3 [发行版 10.2 到 11.2]本文档所含信息适用于所有平台 用 ...

  3. XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)

    以下是代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sy ...

  4. javaScript获取文档中所有元素节点的个数

    HTML+JS 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  5. 最常见的5个导致 RAC 实例崩溃的问题

    适用于: OracleDatabase - Enterprise Edition - 版本11.2.0.1 和更高版本本文档所含信息适用于所有平台 用途 本文档的目的是总结可能导致 RAC 实例崩溃的 ...

  6. 精华阅读第 13 期 |常见的八种导致 APP 内存泄漏的问题

    本期是移动开发精英俱乐部的第13期文章,都是以技术为主,所以这里就不过多的进行赘述了,我们直接看干货内容吧!本文系ITOM管理平台OneAPM整理. 实际项目中的MVVM(积木)模式–序章 导读:开篇 ...

  7. k8s驱逐篇(3)-kubelet节点压力驱逐-源码分析篇

    kubelet节点压力驱逐-概述 kubelet监控集群节点的 CPU.内存.磁盘空间和文件系统的inode 等资源,根据kubelet启动参数中的驱逐策略配置,当这些资源中的一个或者多个达到特定的消 ...

  8. javascript创建文档碎片节点

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  9. Cassandra1.2文档学习(2)——节点间通信协议之gossip协议

    参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/a ...

随机推荐

  1. python 并发编程之IO 模型

    首先说一下 IO 发生时涉及的对象和步骤.以read 为例,会经历两个阶段: 1)等待数据准备 2)将数据从内核拷贝到进程中 二,阻塞Io(blocking IO) 在 Linux中  默认情况下所有 ...

  2. C#基础之--线程、任务和同步:一、异步委托

    创建线程的一种简单方式是定义一个委托,并异步调用它.委托是方法的类型安全的引用. Delegate还支持异步地调用方法.在后台Delegate类会创建一个执行任务的线程. 为了说明委托的异步特性,从一 ...

  3. E20181001-ts

    decorate vt. 装饰; 点缀; 粉刷; 授予(某人)勋章  vi. 装饰; 布置;

  4. Unresolved function or method require()

    1. 这是在JavaScript配置中没有node.js,去设置中配置就行了,方法如下: setting -> Languages&Frameworks -> Javascript ...

  5. phpstrom安装bootstrap3插件

    1.步骤 File > > Settings > >Plugins > > 搜索bootstrap 3 然后点击 Browse repositories 就会有一个 ...

  6. bzoj 2039: [2009国家集训队]employ人员雇佣【最小割】

    一开始在https://www.cnblogs.com/lokiii/p/10770919.html基础上连(i,j,b[i][j])建了个极丑的图T掉了--把dinic换成isap勉强能卡过 首先因 ...

  7. Codevs 1140 Jam的计数法

    1140 Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个 ...

  8. 第二十一篇 .NET高级技术之使用多线程(三)

    1.  单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它 ...

  9. Linux 软连接和硬连接(转)

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  10. slice方法可以将“类似数组的对象”变成真正的数组 (遇到时候再研究一次)

    典型的“类似数组的对象”是函数的arguments对象,以及大多数 DOM 元素集,还有字符串. // arguments对象 function args() { return arguments } ...