oracle11gR版本GI中新增,Oracle11g新特性MemberKillEscalation简介
從oracle 11gR1 開始,Member Kill Escalation的出現(xiàn)成功的解決了前面提到的情況。當實例eviction在指定的時間內(默認20秒)不能
首先我們介紹一下歷史。在Oracle 9i/10g 中,如果一個數(shù)據(jù)庫實例需要驅逐(evict, alert 文件中會出現(xiàn)ora-29740錯誤)另一個實例時,需要通過LMON進程在控制文件(以下簡稱CF)中寫入相應信息,當目標實例的LMON進程讀取到相應的信息后,該實例shudown。但是,如果目標實例的LMON進程掛起而無法完成CF I/O的話,eviction將無法成功,這種情況有可能導致整個數(shù)據(jù)庫掛起,需要dba手工干預。
所以,,從oracle 11gR1 開始,Member Kill Escalation的出現(xiàn)成功的解決了前面提到的情況。當實例eviction在指定的時間內(默認20秒)不能成功完成時,oracle會在css層面上(因為lmon進程會作為成員注冊到css上,相應的內容會在今后的文章中介紹)產生一個新的進程 Kill Daemon(以下簡稱KD), 終止目標實例的LMON進程以保證eviction 能夠成功結束。如果情況更糟,KD進程也無法在指定的時間內(默認30秒)終止LMON進程,css 會把member kill升級為node kill,目標節(jié)點的css會重新啟動本節(jié)點,以確保數(shù)據(jù)庫的一致性。當然,如果您的版本是11.2.0.2或更高,由于新特性Rebootless restart的引入,node kill首先會嘗試重新啟動GI stack,如果不能夠完成,才會重新啟動節(jié)點。
接下來我們用下面的例子說明Member Kill Escalation是如何工作的。
1.實例2發(fā)現(xiàn)實例1的LMS1進程出現(xiàn)問題,并發(fā)出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發(fā)出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請求發(fā)出20秒之后實例1仍然沒有離開集群,實例2發(fā)出了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. 節(jié)點2的ocssd.bin收到member kill請求之后,向節(jié)點1的KD發(fā)出了請求,要求終止節(jié)點1的lmon進程。
節(jié)點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 0x2 escalate 0xffffffff <========= member kill escalation還沒有發(fā)生。
2010-07-24 10:38:45.113: [ CSSD][1281349952]clssgmMbrKillThread: Kill requested map 0x00000001 id 2 Group name DBOR08P flags 0x00000001 start time 0x98117058 end time 0x9811e77c time out 30500 req node 2 <======= member kill 需要在30秒內完成。
如果節(jié)點1能夠在指定的時間內(30秒)終止本地lmon進程,member kill 就不會被escalation 成為node kill。
3.由于member kill 沒有在指定的時間內完成,被escalate 為node kill,即節(jié)點1 重啟。
節(jié)點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 immediate escalation: Req member 1 Req node 2 Number of answers expected 0 Number of answers outstanding 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssgmMbrKillEsc: Escalating node 1 Member request 0x00000001 Member success 0x00000000 Member failure 0x00000000 Number left to kill 1
2010-07-24 10:39:15.620: [ CSSD][1281349952]clssnmKillNode: node 1 (ghlx062ptlge) kill initiated <====== 節(jié)點1被重啟
注意:member kill escalation不僅適用于database 實例,同時也適用于ASM實例。
本條技術文章來源于互聯(lián)網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統(tǒng)來源:php中文網
總結
以上是生活随笔為你收集整理的oracle11gR版本GI中新增,Oracle11g新特性MemberKillEscalation简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python高频词_python几万条微
- 下一篇: 计算机屏幕亮度调到多少合适,电脑屏幕的亮