欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle怎么處理腦裂,oracle腦裂的判斷機制

什么是Oracle Clusterware 和RAC中的腦裂

Oracle Clusterware就是oracle 集群,由多個節(jié)點組成。

成都創(chuàng)新互聯(lián)公司服務緊隨時代發(fā)展步伐,進行技術革新和技術進步,經(jīng)過10多年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設計師、專業(yè)的網(wǎng)站實施團隊以及高素質(zhì)售后服務人員,并且完全形成了一套成熟的業(yè)務流程,能夠完全依照客戶要求對網(wǎng)站進行成都網(wǎng)站設計、網(wǎng)站建設、建設、維護、更新和改版,實現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。

RAC中的腦裂:每個節(jié)點都有一個私有IP,供集群內(nèi)部通信和傳輸數(shù)據(jù),我們叫做心跳,當心跳不通時,每個節(jié)點都會認為自己是好的,都會認為其他節(jié)點宕機了,集群就出現(xiàn)腦裂。解決腦裂的辦法去了解下votedisk

誰給我講講oracle 集群,腦裂是怎么回事?學會了就給豆子

腦裂了某些原因導致心跳線無法連接。

這時候每個NODE都是獨立的個體了。

突然心跳線恢復了。然后節(jié)點們互相爭主權。

然后就各種異常了。

現(xiàn)在新版本的11g的oracle rac給的方案都重啟,重新組成集群。

ORACLE 腦裂是什么意思?

針對OracleCluster,如果其中一個節(jié)點被踢出Cluster,無論是因為內(nèi)部的同步問題,或是時間不一致等其他錯誤,只要有節(jié)點非人為的被踢出 Cluster就可以稱作腦裂.

Oracle RAC 腦裂

在集群中,節(jié)點間通過心跳來了解彼此的健康狀態(tài),以確保各節(jié)點協(xié)調(diào)工作。假設只有“心跳”出現(xiàn)問題,但各個節(jié)點還在正常運行,這時,每個節(jié)點都認為其它的節(jié)點宕機了,自己才是整個集群環(huán)境中的“唯一健在者”,自己應該獲得整個集群的“控制權”。在集群環(huán)境中,存儲設備都是共享的,這就意味著數(shù)據(jù)災難。簡單點說,就是如果由于私有網(wǎng)絡硬件或軟件的故障,導致集群節(jié)點間的私有網(wǎng)絡在一定時間內(nèi)無法進行正常的通信,這種現(xiàn)像稱為腦裂。在發(fā)生腦裂情況后,集群的某些節(jié)點間的網(wǎng)絡心跳丟失,但磁盤心跳依然正常,集群根據(jù)投票算法(Quorum Algorithm)將不正確的節(jié)點踢出集群。磁盤心跳的主要目的是當集群發(fā)生腦裂時可以幫助指定腦裂的解決方案。

私網(wǎng)網(wǎng)絡不能正常通信有一個超時時間,稱為MC(Misscount),默認為30s(通過命令“crsctl get css misscount”查詢)。該時間允計集群節(jié)點間不能正常通信的最大時間為30s,如果超過30s,那么Oracle認為節(jié)點間發(fā)生了腦裂。在出現(xiàn)腦裂后,集群的重要任務就是保證錯誤節(jié)點與正確節(jié)點間的I/O是隔離的,這樣才能避免對數(shù)據(jù)造成不一致的損壞。處理這個問題的方法就是:踢出錯誤節(jié)點執(zhí)行修復過程。

怎樣通過日志分析rac各種腦裂發(fā)生的原因

OracleRACCSS提供2種后臺服務包括群組管理(GroupManagment簡稱GM)和節(jié)點監(jiān)控(NodeMonitor簡稱NM),其中GM管理組(group)和鎖(lock)服務。在集群中任意時刻總有一個節(jié)點會充當GM主控節(jié)點(masternode)。集群中的其他節(jié)點串行地將GM請求發(fā)送到主控節(jié)點(masternode),而masternode將集群成員變更信息廣播給集群中的其他節(jié)點。組成員關系(groupmembership)在每次發(fā)生集群重置(clusterreconfiguration)時發(fā)生同步。每一個節(jié)點獨立地詮釋集群成員變化信息。而節(jié)點監(jiān)控NM服務則負責通過skgxn(skgxn-libskgxn.a,提供節(jié)點監(jiān)控的庫)與其他廠商的集群軟件保持節(jié)點信息的一致性。此外NM還提供對我們熟知的網(wǎng)絡心跳(Networkheartbeat)和磁盤心跳(Diskheartbeat)的維護以保證節(jié)點始終存活著。當集群成員沒有正常Networkheartbeat或Diskheartbeat時NM負責將成員踢出集群,被踢出集群的節(jié)點將發(fā)生節(jié)點重啟(reboot)。NM服務通過OCR中的記錄(OCR中記錄了Interconnect的信息)來了解其所需要監(jiān)聽和交互的端點,將心跳信息通過網(wǎng)絡發(fā)送到其他集群成員。同時它也監(jiān)控來自所有其他集群成員的網(wǎng)絡心跳Networkheartbeat,每一秒鐘都會發(fā)生這樣的網(wǎng)絡心跳,若某個節(jié)點的網(wǎng)絡心跳在misscount(bytheway:10.2.0.1中Linux上默認misscount為60s,其他平臺為30s,若使用了第三方vendorclusterware則為600s,但10.2.0.1中未引入disktimeout;10.2.0.4以后misscount為60s,disktimeout為200s;11.2以后misscount為30s:CRS-4678:Successfulgetmisscount30forClusterSynchronizationServices,CRS-4678:Successfulgetdisktimeout200forClusterSynchronizationServices)指定的秒數(shù)中都沒有被收到的話,該節(jié)點被認為已經(jīng)”死亡”了。NM還負責當其他節(jié)點加入或離開集群時初始化集群的重置(Initiatesclusterreconfiguration)。在解決腦裂的場景中,NM還會監(jiān)控votingdisk以了解其他的競爭子集群(subclusters)。關于子集群我們有必要介紹一下,試想我們的環(huán)境中存在大量的節(jié)點,以Oracle官方構建過的128個節(jié)點的環(huán)境為我們的想象空間,當網(wǎng)絡故障發(fā)生時存在多種的可能性,一種可能性是全局的網(wǎng)絡失敗,即128個節(jié)點中每個節(jié)點都不能互相發(fā)生網(wǎng)絡心跳,此時會產(chǎn)生多達128個的信息”孤島”子集群。另一種可能性是局部的網(wǎng)絡失敗,128個節(jié)點中被分成多個部分,每個部分中包含多于一個的節(jié)點,這些部分就可以被稱作子集群(subclusters)。當出現(xiàn)網(wǎng)絡故障時子集群內(nèi)部的多個節(jié)點仍能互相通信傳輸投票信息(votemesg),但子集群或者孤島節(jié)點之間已經(jīng)無法通過常規(guī)的Interconnect網(wǎng)絡交流了,這個時候NMReconfiguration就需要用到votingdisk投票磁盤。因為NM要使用votingdisk來解決因為網(wǎng)絡故障造成的通信障礙,所以需要保證votingdisk在任意時刻都可以被正常訪問。在正常狀態(tài)下,每個節(jié)點都會進行磁盤心跳活動,具體來說就是會到投票磁盤的某個塊上寫入disk心跳信息,這種活動每一秒鐘都會發(fā)生,同時CSS還會每秒讀取一種稱作”killblock”的”賜死塊”,當”killblock”的內(nèi)容表示本節(jié)點被驅逐出集群時,CSS會主動重啟節(jié)點。為了保證以上的磁盤心跳和讀取”killblock”的活動始終正常運作CSS要求保證至少(N/2+1)個投票磁盤要被節(jié)點正常訪問,這樣就保證了每2個節(jié)點間總是至少有一個投票磁盤是它們都可以正常訪問的,在正常情況下(注意是風平浪靜的正常情況)只要節(jié)點所能訪問的在線votingdisk多于無法訪問的votingdisk,該節(jié)點都能幸福地活下去,當無法訪問的votingdisk多于正常的votingdisk時,ClusterCommunicationService進程將失敗并引起節(jié)點重啟。所以有一種說法認為votingdisk只要有2個足以保證冗余度就可以了,沒有必要有3個或以上votingdisk,這種說法是錯誤的。Oracle推薦集群中至少要有3個votingdisks。補充1:Question:有同學問那么votingdisk必須是奇數(shù)個呢?Answer:實際上我們僅僅是推薦使用奇數(shù)個votedisk,而非必須是奇數(shù)個。10gR2中votedisk的數(shù)目上限是32個。Question我們可以使用2或4個votedisk嗎?Answer:可以的。但是2、4這樣的數(shù)目在“至少(N/2+1)個投票磁盤要被節(jié)點正常訪問”這一diskheartbeat的硬性算法下是不利的:當我們使用2個votedisk時,不能發(fā)生任意個votedisk的心跳失敗當我們使用3個votedisk時,不能發(fā)生大于1個的votedisk心跳失敗當我們使用4個votedisk時,不能發(fā)生大于1個的votedisk心跳失敗,這和3個時的容錯率是一樣,但是因為我們有的votedisk,這會導致管理成本和引入的風險增長當我們使用5個votedisk時,不能發(fā)生大于2個的votedisk心跳失敗當我們使用6個votedisk時,仍然不能發(fā)生大于2個的votedisk心跳失敗,同樣的因為比5時多出一個,也會引入不合理的管理成本和風險補充2:Question:若節(jié)點間的網(wǎng)絡心跳正常,且節(jié)點所能正常心跳的votedisk大于不能正常訪問的,如3個votedisk時恰巧有1個votedisk的diskheartbeat超時,此時Brainsplit會發(fā)生嗎?Answer:這種情況即不會觸發(fā)BrainSplit,也不會引發(fā)節(jié)點驅逐協(xié)議(evictionprotocol)。當單個或小于(N/2+1)個的votingdisk心跳失敗(diskheartbeatfailure)時,這種心跳失敗可能是由于短期內(nèi)節(jié)點訪問votingdisk發(fā)生I/Oerror錯誤而引起的,此時css會立刻將這些失敗的votingdisk標記為OFFLINE。雖然有一定數(shù)量的votingdiskOFFLINE了,但是我們?nèi)杂兄辽?N/2+1)個投票磁盤可用,這保證了evictionprotocol不會被調(diào)用,所以沒有節(jié)點會被reboot重啟。緊接著nodemonitor模塊的DiskpingMonitorThread(DPMT-clssnmDiskPMT)會重復嘗試訪問這些失敗的OFFLINEvotingdisk,若這些投票磁盤變得再次可I/O訪問且經(jīng)過驗證其上的數(shù)據(jù)也沒有訛誤,那么css會再次將此votingdisk標記為ONLINE;但是如果在45s(這里的45s是基于misscount和內(nèi)部算法獲得的)內(nèi)仍不能正常訪問相關的votingdisk,那么DMPT將在cssd.log中生成警告信息,如:

請問oracle rac集群中的腦裂brain split是怎么回事?請詳細介紹下

這2天在面試DBA?Candidate的時候,我問到Oracle?RAC中Brain?Split腦裂決議的一些概念,?幾乎所有的Candidate都告訴我當”只有2個節(jié)點的時候,投票算法就失效了,會讓2個節(jié)點去搶占Quorum?Disk,最先獲得的節(jié)點將活下來”?。?我們姑且把這套理論叫做”?搶占論”。

“搶占論”的具體觀點可能與下面這一段文字大同小異:

“在集群中,節(jié)點間通過某種機制(心跳)了解彼此的健康狀態(tài),以確保各節(jié)點協(xié)調(diào)工作。?假設只有”心跳”出現(xiàn)問題,?各個節(jié)點還在正常運行,?這時,每個節(jié)點都認為其他的節(jié)點宕機了,?自己是整個集群環(huán)境中的”唯一建在者”,自己應該獲得整個集群的”控制權”。?在集群環(huán)境中,存儲設備都是共享的,?這就意味著數(shù)據(jù)災難,?這種情況就是”腦裂”

解決這個問題的通常辦法是使用投票算法(Quorum?Algorithm).?它的算法機理如下:

觀點1:

集群中各個節(jié)點需要心跳機制來通報彼此的”健康狀態(tài)”,假設每收到一個節(jié)點的”通報”代表一票。對于三個節(jié)點的集群,正常運行時,每個節(jié)點都會有3票。?當結點A心跳出現(xiàn)故障但節(jié)點A還在運行,這時整個集群就會分裂成2個小的partition。?節(jié)點A是一個,剩下的2個是一個。?這是必須剔除一個partition才能保障集群的健康運行。?對于有3個節(jié)點的集群,?A?心跳出現(xiàn)問題后,?B?和?C?是一個partion,有2票,?A只有1票。?按照投票算法,?B?和C?組成的集群獲得控制權,?A?被剔除。

觀點2:

如果只有2個節(jié)點,投票算法就失效了。?因為每個節(jié)點上都只有1票。?這時就需要引入第三個設備:Quorum?Device.?Quorum?Device?通常采用餓是共享磁盤,這個磁盤也叫作Quorum?disk。?這個Quorum?Disk?也代表一票。?當2個結點的心跳出現(xiàn)問題時,?2個節(jié)點同時去爭取Quorum?Disk?這一票,?最早到達的請求被最先滿足。?故最先獲得Quorum?Disk的節(jié)點就獲得2票。另一個節(jié)點就會被剔除。“

以上這段文字描述中觀點1?與我在Oracle?RAC?Brain?Split?Resolution?一文中提出的看法其實是類似的。??這里再列出我的描述:

在腦裂檢查階段Reconfig?Manager會找出那些沒有Network?Heartbeat而有Disk?Heartbeat的節(jié)點,并通過Network?Heartbeat(如果可能的話)和Disk?Heartbeat的信息來計算所有競爭子集群(subcluster)內(nèi)的節(jié)點數(shù)目,并依據(jù)以下2種因素決定哪個子集群應當存活下去:

擁有最多節(jié)點數(shù)目的子集群(Sub-cluster?with?largest?number?of?Nodes)

若子集群內(nèi)數(shù)目相等則為擁有最低節(jié)點號的子集群(Sub-cluster?with?lowest?node?number),舉例來說在一個2節(jié)點的RAC環(huán)境中總是1號節(jié)點會獲勝。

補充:關于 我引入的子集群的概念的介紹:

“在解決腦裂的場景中,NM還會監(jiān)控voting?disk以了解其他的競爭子集群(subclusters)。關于子集群我們有必要介紹一下,試想我們的環(huán)境中存在大量的節(jié)點,以Oracle官方構建過的128個節(jié)點的環(huán)境為我們的想象空間,當網(wǎng)絡故障發(fā)生時存在多種的可能性,一種可能性是全局的網(wǎng)絡失敗,即128個節(jié)點中每個節(jié)點都不能互相發(fā)生網(wǎng)絡心跳,此時會產(chǎn)生多達128個的信息”孤島”子集群。另一種可能性是局部的網(wǎng)絡失敗,128個節(jié)點中被分成多個部分,每個部分中包含多于一個的節(jié)點,這些部分就可以被稱作子集群(subclusters)。當出現(xiàn)網(wǎng)絡故障時子集群內(nèi)部的多個節(jié)點仍能互相通信傳輸投票信息(vote?mesg),但子集群或者孤島節(jié)點之間已經(jīng)無法通過常規(guī)的Interconnect網(wǎng)絡交流了,這個時候NM?Reconfiguration就需要用到voting?disk投票磁盤。”

from??askmaclean

網(wǎng)站題目:oracle怎么處理腦裂,oracle腦裂的判斷機制
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article29/dsieejh.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航微信公眾號域名注冊Google動態(tài)網(wǎng)站微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站