11g Member Kill Escalation
来源:互联网 发布:微商网络推广 编辑:程序博客网 时间:2024/05/16 09:27
ORACLE_CLUSTER_11g Member Kill Escalation
https://blogs.oracle.com/Database4CN/entry/11g_%E6%96%B0%E7%89%B9%E6%80%A7_member_kill_escalation
首先我们介绍一下历史。在oracle 9i/10g 中,如果一个数据库实例需要驱逐(evict, alert文件中会出现ora-29740错误)另一个实例时,需要通过LMON进程在控制文件(以下简称CF)中写入相应信息,当目标实例的LMON进程读取到相应的信息后,该实例shudown。但是,如果目标实例的LMON进程挂起而无法完成CF I/O的话,eviction将无法成功,这种情况有可能导致整个数据库挂起,需要dba手工干预。
所以,从oracle 11gR1开始,Member Kill Escalation的出现成功的解决了前面提到的情况。当实例eviction在指定的时间内(默认20秒)不能成功完成时,oracle会在css层面上(因为lmon进程会作为成员注册到css上,相应的内容会在今后的文章中介绍)产生一个新的进程 Kill Daemon(以下简称KD),终止目标实例的LMON进程以保证eviction能够成功结束。如果情况更糟,KD进程也无法在指定的时间内(默认30秒)终止LMON进程,css会把member kill升级为node kill,目标节点的css会重新启动本节点,以确保数据库的一致性。当然,如果您的版本是11.2.0.2或更高,由于新特性Rebootlessrestart的引入,node kill首先会尝试重新启动GI stack,如果不能够完成,才会重新启动节点。
接下来我们用下面的例子说明Member Kill Escalation是如何工作的。
1.实例2发现实例1的LMS1进程出现问题,并发出member kill request.
实例2 Alert log:
Sat Jul 24 10:37:37 2010
LMS1 (ospid: 22636) has detected no messaging activity from instance 1
LMS1 (ospid: 22636) issues an IMR to resolve the situation
Please check LMS1 trace file for more detail.
Sat Jul 24 10:37:37 2010 <======= 实例2发出reconfiguration请求
Communications reconfiguration: instance_number 1
Sat Jul 24 10:38:25 2010
Evicting instance 1 from cluster
Waiting for instances to leave:
1
Sat Jul 24 10:38:45 2010 <===== 在reconfiguration请求发出20秒之后实例1仍然没有离开集群,实例2发出了member kill的请求。
Remote instance kill is issued with system inc 10
Remote instance kill map (size 1) : 1
Sat Jul 24 10:38:55 2010
Waiting for instances to leave:
1
2. 节点2的ocssd.bin收到memberkill请求之后,向节点1的KD发出了请求,要求终止节点1的lmon进程。
节点2 ocssd.log:
2010-07-24 10:38:45.112: [ CSSD][1091119424]clssgmExecuteClientRequest: Member kill request from client(0x2aaab4178470)
2010-07-24 10:38:45.113: [ CSSD][1091119424]clssgmReqMemberKill: Kill requested map 0x00000001 flags 0x2escalate 0xffffffff <========= member kill escalation还没有发生。
2010-07-24 10:38:45.113: [ CSSD][1281349952]clssgmMbrKillThread: Kill requested map 0x00000001 id 2 Groupname DBOR08P flags 0x00000001 start time 0x98117058 end time 0x9811e77c timeout 30500 req node 2 <======= member kill需要在30秒内完成。
如果节点1能够在指定的时间内(30秒)终止本地lmon进程,member kill就不会被escalation 成为nodekill。
3.由于member kill 没有在指定的时间内完成,被escalate为nodekill,即节点1重启。
节点2 ocssd.log:
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillThread: Time up: Start time -1743687592 End time-1743657092 Current time -1743657092 timeout 30500
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillThread: Member kill request complete.
2010-07-24 10:39:15.619: [ CSSD][1281349952]clssgmMbrKillSendEvent: Missing answers or immediateescalation: Req member 1 Req node 2 Number of answers expected 0 Number ofanswers outstanding 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssgmMbrKillEsc:Escalating node 1 Member request 0x00000001 Member success 0x00000000 Memberfailure 0x00000000 Number left to kill 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssnmKillNode:node 1 (ghlx062ptlge) kill initiated <======节点1被重启
注意:member kill escalation不仅适用于database实例,同时也适用于ASM实例。
- 11g Member Kill Escalation
- oracle 11g alter database drop logfile member 一例
- Oracle 11g 中 Kill session 的研究!
- kill
- kill
- kill
- kill
- kill
- kill
- kill
- kill
- Basic Linux Privilege Escalation
- Basic Linux Privilege Escalation
- BASIC WINDOWS PRIVILEGE ESCALATION
- Basic Linux Privilege Escalation
- 【discuz】G变量注解之 $_G['member'] 全局当前登录者信息
- g++报错原因分析error: no......member function declared in class 'XXX‘
- USD Escalation Engineering - Software Engineer
- Get the RACCheck for the diagnosing
- OCR/ Vote disk Maintenance Operations
- How to uninstall CRS
- The Diagwait Function
- Script to Collect RAC Diagnostic Information
- 11g Member Kill Escalation
- 感觉不错哈!
- The oracle reference scripts of the backup and the recover
- Change archive mode
- WPF,让我眼前一亮
- Delete archive log
- Check the recover datafile header
- 黑马程序员-我的入学笔记3-飞行棋小程序
- 事件处理示例代码(一)