适用于:

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

用途

这篇文档提供了诊断 11.2 集群节点驱逐问题的参考方法。对于 11.2 之前的集群节点驱逐问题,请参考 Note: 265769.1

适用范围

受众范围是遇到了集群节点驱逐问题的 DBA 和技术支持工程师。

详细信息

节点驱逐概要

Oracle 集群在发现一些严重问题时会将一个或多个节点从集群中驱逐出去。这种严重问题包括节点没有网络心跳、节点没有磁盘心跳、服务器无响应或者有严重性能问题、或者 ocssd.bin 无响应。节点驱逐的目的是通过去除一些节点来维护整个节点的健康。

从 11.2.0.2 RAC (或者是 Exadata),节点驱逐也许并不会真正重启主机。这称为 rebootless restart。这种情况下,我们会重启大部分的集群进程来确认是否可以解决这台节点的问题。

1.0 - 会导致重启的进程

OCSSD (aka CSS daemon) - 这个进程由 cssdagent 进程所启动。对于使用第三方集群件和没有第三方集群件的环境都有这个进程。OCSSD 的主要作用是节点间的健康监控以及数据库实例的发现。健康监控包括网络心跳和磁盘心跳(针对选举盘)。OCSSD 在收到客户端(比如数据库的 LMON 进程)的 member kill escalation 请求后,也可以发起节点驱逐。OCSSD 进程是一个以 Oracle 用户身份运行的、多线程的、运行级别较高的进程。

启动顺序: INIT --> init.ohasd --> ohasd --> ohasd.bin --> cssdagent --> ocssd --> ocssd.bin

CSSDAGENT - 这个进程由 OHASD 进程启动,CSSDAGENT 用于启动 OCSSD 进程,它可以监控节点 hang(类似于 oprocd),同时也监控 OCSSD 进程 hang(类似于 oclsomon ),而且还监控第三方集群件(类似于 vmon) 。这个进程是一个以 root 用户身份运行的、多线程的、运行级别较高的进程。

启动顺序: INIT --> init.ohasd --> ohasd --> ohasd.bin --> cssdagent

CSSDMONITOR - 这个进程也会监控节点 hang(类似于 oprocd),同时也监控 OCSSD 进程 hang(类似于 oclsomon ),而且还监控第三方集群件(类似于 vmon) 。这个进程是一个以 root 用户身份运行的、多线程的、运行级别较高的进程。
  启动顺序: INIT --> init.ohasd --> ohasd --> ohasd.bin --> cssdmonitor

2.0 - 确认由哪个进程发起了重启

需要查看的重要的文件:

  • Clusterware alert log in <GRID_HOME>/log/<nodename>
  • The cssdagent log(s) in <GRID_HOME>/log/<nodename>/agent/ohasd/oracssdagent_root
  • The cssdmonitor log(s) in <GRID_HOME>/log/<nodename>/agent/ohasd/oracssdmonitor_root
  • The ocssd log(s) in <GRID_HOME>/log/<nodename>/cssd
  • The lastgasp log(s) in /etc/oracle/lastgasp 或者 /var/opt/oracle/lastgasp
  • IPD/OS 或者 OS Watcher data
  • GRID home 的'opatch lsinventory -detail'的输出
  • *Messages 文件:

* Messages 文件路径:

  • Linux: /var/log/messages
  • Sun: /var/adm/messages
  • HP-UX: /var/adm/syslog/syslog.log
  • IBM: /bin/errpt -a > messages.out
请参考下面的文档关于如何收集上述信息:

Document 1513912.1 - TFA Collector - Tool for Enhanced Diagnostic Gathering

在大部分情况下,11.2 集群驱逐时会在集群的 alert log 中记录有意义的诊断信息。通过这些信息,可以确认是哪个进程发起了重启。下面是集群的 alert log 的样例:

[ohasd(11243)]CRS-8011:reboot advisory message from host: sta00129, component: cssagent, with timestamp: L-2009-05-05-10:03:25.340
[ohasd(11243)]CRS-8013:reboot advisory message text: Rebooting after limit 28500 exceeded; disk timeout 27630, network timeout 28500, last heartbeat from CSSD at epoch seconds 1241543005.340, 4294967295 milliseconds ago based on invariant clock value of 93235653

这次驱逐是由于遇到了网络超时问题所导致。CSSD 进程退出后,CSSDAGENT 发起了重启。CSSDAGENT 是从 CSSD 的本地心跳相关的错误中获得了这些信息。

如果在被驱逐的节点的集群 alert log 中没有相关信息,请检查本节点的 lastgasp 日志,以及/或者其它节点的集群 alert log。

3.0 - 诊断 OCSSD 发起的驱逐

如果遇到了 OCSSD 发起的驱逐,请参考 3.1 章节列出的常见原因:

3.1 - OCSSD 驱逐的常见原因

  • 节点间的网络失败或者延迟。在连续的30秒(默认值,由 CSS misscount 决定)心跳不通后,会导致节点驱逐。
  • 无法读写 CSS 选举盘。如果一个节点无法完成对于大多数选举盘的磁盘心跳,节点会被驱逐。
  • Member kill escalation。比如,数据库实例的 LMON 进程可能会请求 CSS 将一个实例从集群中驱逐。如果实例驱逐超时,会升级为节点驱逐。
  • OCSSD进程发生错误或者hang,这种情况会由上面任何一种情况或者其它情况引起。
  • Oracle bug.

3.2 - OCSSD 驱逐时需要收集和查看的文件

在章节 2.0 所列出的所有节点的所有文件,也许还需要更多信息。

由于选举盘问题造成的驱逐的样例:

CSS log:

2012-03-27 22:05:48.693: [ CSSD][1100548416](:CSSNM00018:)clssnmvDiskCheck: Aborting, 0 of 3 configured voting disks available, need 2
2012-03-27 22:05:48.693: [ CSSD][1100548416]###################################
2012-03-27 22:05:48.693: [ CSSD][1100548416]clssscExit: CSSD aborting from thread clssnmvDiskPingMonitorThread

OS messages:

Mar 27 22:03:58 choldbr132p kernel: Error:Mpx:All paths to Symm 000190104720 vol 0c71 are dead.
Mar 27 22:03:58 choldbr132p kernel: Error:Mpx:Symm 000190104720 vol 0c71 is dead.
Mar 27 22:03:58 choldbr132p kernel: Buffer I/O error on device sdbig, logical block 0
...

4.0 - 诊断 CSSDAGENT  或者 CSSDMONITOR 驱逐

如果遇到了 CSSDAGENT 或者 CSSDMONITOR 驱逐,请参考章节4.1列出的常见原因。

4.1 - CSSDAGENT 或者 CSSDMONITOR 驱逐的常见原因

  • OS 调度问题。比如,OS 遇到了驱动、硬件问题或者主机负载太高 (CPU 100% 被使用)等问题,会导致 OS 调度异常。
  • CSSD 的一个或多个线程 hang。
  • Oracle bug.

4.2 - CSSDAGENT  或者 CSSDMONITOR 驱逐需要收集和查看的文件

章节 2.0 所列出的所有节点的所有文件,也许还需要更多信息。

参考

NOTE:1053147.1 - 11gR2 Clusterware and Grid Home - What You Need to Know
NOTE:736752.1 - Introducing Cluster Health Monitor (IPD/OS)
NOTE:1513912.1 - TFA Collector - Tool for Enhanced Diagnostic Gathering

NOTE:301137.1 - OSWatcher (Includes: [Video])
NOTE:265769.1 - Troubleshooting 10g and 11.1 Clusterware Reboots

如何诊断 11.2 集群节点驱逐问题 (文档 ID 1674872.1)的更多相关文章

  1. Hadoop 集群搭建和维护文档

    一.前言 -- 基础环境准备 节点名称 IP NN DN JNN ZKFC ZK RM NM Master Worker master1 192.168.8.106 * * * * * * maste ...

  2. NVIDIA-GPU归入K8S集群管理的安装文档--第二版

    一,nvidia K80驱动安装 1,  查看服务器上的Nvidia(英伟达)显卡信息,命令lspci |grep NVIDIA 2,  按下来,进行显卡驱动程序的安装,驱动程序可到nvidia的官网 ...

  3. RHEL 集群(RHCS)配置小记 -- 文档记录

    1.RHEL 6 集群配置官方管理手册 https://access.redhat.com/site/documentation/zh-CN/Red_Hat_Enterprise_Linux/6/pd ...

  4. Greenplum/Deepgreen(集群/分布式)安装文档

    Deepgreen分布式安装文档 环境准备 1.安装VMware虚拟机软件,然后在VMware安装三台Linux虚拟机(使用centos7版本) 2.使用的虚拟机如下: 192.168.136.155 ...

  5. Elasticsearch 使用集群 - 创建和查询文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  6. Akka(12): 分布式运算:Cluster-Singleton-让运算在集群节点中自动转移

    在很多应用场景中都会出现在系统中需要某类Actor的唯一实例(only instance).这个实例在集群环境中可能在任何一个节点上,但保证它是唯一的.Akka的Cluster-Singleton提供 ...

  7. 来了,老弟!__二进制部署kubernetes1.11.7集群

    Kubernetes容器集群管理 Kubernetes介绍 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S.K8S是Go ...

  8. Kubernetes从懵圈到熟练:读懂这一篇,集群节点不下线

    排查完全陌生的问题,完全不熟悉的系统组件,是售后工程师的一大工作乐趣,当然也是挑战.今天借这篇文章,跟大家分析一例这样的问题.排查过程中,需要理解一些自己完全陌生的组件,比如systemd和dbus. ...

  9. kubeadm安装kubernetes V1.11.1 集群

    之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...

随机推荐

  1. nohup不输出日志信息的方法及linux重定向

    最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G了,导 ...

  2. E20190324-hm

    splice  vt. 绞接; 捻接(两段绳子); 胶接; 粘接(胶片.磁带等); n. 胶接处,粘接处,铰接处;

  3. E20190215-mt

    parenthesis n. 圆括号; 插入语; 插入成分; 间歇; (parentheses) individual  adj. 个人的; 个别的; 独特的;    n. 个人; 个体; priva ...

  4. 洛谷 - P1663 - 山 - 半平面交

    https://www.luogu.org/problemnew/show/P1663 给定山的性状,求一个最低点可以看见所有的地方. 就是半平面交. 粘贴全家福: #include<bits/ ...

  5. Weekly Contest 78-------->811. Subdomain Visit Count (split string with space and hash map)

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  6. css定位-position

    前言 定位的目的就是把元素摆放到指定的位置. 定位上下文:定位元素的大小,位置都是相对于定位上下文的. position属性值有5个值 static:所有有元素定位默认的初始值都是static.就是不 ...

  7. 企业级应用,如何实现服务化三(dubbo入门案例)

    今天是六一儿童节,从千里之外的广州,回到了贵州老家,真好!好山好水好心情,好了接着写点东西.这是企业级应用,如何实现服务化系列的第三篇.在上一篇:企业级应用,如何实现服务化二(dubbo架构)中,认识 ...

  8. Pycharm2019.1.2永久激活

    五月八日Pycharm更新至2019.1.2,小伙们是否也及时更新了呢?值得注意的是以前的激活方式已不适用于本次更新,这里分享最新的激活方法,有需要的同学请扫码关注我的公众号获取 重申:如果经济条件允 ...

  9. window git bash客户端vimrc设置tab缩进

    从开发机写的代码,弄到windows上的客户端git提交,总是显示格式对不起的问题,问题是再vimrc上tab键的缩进不等于4个空格,然后就需要设置成和linux一样的四格缩进. 安装上git bas ...

  10. PostgreSQL-8-数据合并

    -- 1.JOIN与UNION的区别详解 CREATE TABLE t1(id int,value1 text); ,,,'c'); -- 创建表格t1 CREATE TABLE t2(id int, ...