日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集群、RAC和MAA

發(fā)布時間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集群、RAC和MAA 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

集群:是一種由兩臺或多臺節(jié)點機構(gòu)成的松散耦合的計算節(jié)點集合,這個集合在整個網(wǎng)絡(luò)中表現(xiàn)為單一的系統(tǒng),并通過單一接口進行使用和管理。給用戶提供網(wǎng)絡(luò)服務(wù)或應(yīng)用程序的單一視圖。大多數(shù)模式下,集群中所有計算機都擁有一個相同的名稱,集群內(nèi)任意一個系統(tǒng)都可以被所有網(wǎng)絡(luò)客戶所使用。當(dāng)一個應(yīng)用服務(wù)發(fā)生故障時,應(yīng)用服務(wù)將被重新啟動或被另一臺服務(wù)器接管。客戶將能很快連接到新應(yīng)用服務(wù)器上,理想情況下用戶甚至感覺不到這種故障存在。

一、集群技術(shù)基礎(chǔ)

1.集群地址

維護集群地址的設(shè)施被稱為負(fù)載均衡器。對內(nèi)負(fù)責(zé)管理各節(jié)點加入和退出,對外負(fù)責(zé)集群地址向內(nèi)部實體地址轉(zhuǎn)換。

2.內(nèi)部通信

節(jié)點間心跳測試信息、服務(wù)實體間任務(wù)執(zhí)行上下文信息的通信。

3.集群仲裁

二、集群術(shù)語

1.兩大特性:可擴展性和高可用性

可擴展:新的服務(wù)實體可以動態(tài)的加入集群,從而增強集群性能。
高可用性:通過對服務(wù)實體的冗余配置,使客戶端減少遇到“服務(wù)宕機”的可能性。

2.兩大核心能力:負(fù)載均衡和故障轉(zhuǎn)移

負(fù)載均衡:把處理任務(wù)盡可能均衡的分散到集群中的每個節(jié)點和網(wǎng)絡(luò)資源。
故障轉(zhuǎn)移:集群中正在執(zhí)行任務(wù)的服務(wù)出現(xiàn)故障,另一服務(wù)實體中執(zhí)行同一任務(wù)的資源將接手并繼續(xù)完成任務(wù),這個過程叫故障轉(zhuǎn)移。

三、集群組成元素

  • Cluster
    通過心跳網(wǎng)絡(luò),基于共享存儲磁盤的心跳網(wǎng)絡(luò),將一組機器整合而成的一個集群。

  • Node
    Cluster中的一個主機

  • Resource
    可以從主機接管到備機上的邏輯實體,比如IP地址、文件系統(tǒng)、應(yīng)用程序

四、集群分類

根據(jù)不同功能分類

  • 高性能計算集群
    將計算任務(wù)分配到不同計算節(jié)點來提高整體計算能力,多見于搜索引擎、文本挖掘等互聯(lián)網(wǎng)業(yè)務(wù)。

  • 負(fù)載均衡集群(LB)
    核心是把業(yè)務(wù)的負(fù)載流量盡可能平均合理的分?jǐn)偟郊焊鱾€節(jié)點。每個節(jié)點可以處理一部分負(fù)載,并且可以根據(jù)節(jié)點負(fù)載進行動態(tài)平衡。

  • 高可用性集群(HA)
    側(cè)重提高系統(tǒng)可用性,通過集成硬件和軟件容錯性來實現(xiàn)整體服務(wù)高可用。如果某節(jié)點發(fā)生故障,將由另外節(jié)點代替。RAC就同時具有HA和LB兩種能力。

五、Oracle高可用架構(gòu)(MAA)

最大可用性體系架構(gòu)

MAA是通過把所有可用技術(shù)組合起來,減少或者消除計劃內(nèi)和計劃外的系統(tǒng)宕機時間,包括來自各方面的風(fēng)險,從硬件故障導(dǎo)致的數(shù)據(jù)破壞、到自然災(zāi)害引起的大范圍癱瘓。
RAC不是一個獨立的產(chǎn)品,更像是一個實施方案或者指導(dǎo)方針,把Oracle產(chǎn)品中可用于數(shù)據(jù)保護的技術(shù)匯集在一起,進行歸納、整理、分析,最終提出一個“最佳時間規(guī)劃”。

1.MAA實例

MAA核心思想就是冗余,通過數(shù)據(jù)、軟件、硬件、網(wǎng)絡(luò)等各種組件的冗余,實現(xiàn)最大程度的數(shù)據(jù)保護。

易混淆概念:
1)雙機熱備
兩個或多個主機連接一個共享的存儲設(shè)備,當(dāng)主機服務(wù)器發(fā)生故障時,一旦Cluster軟件偵測到故障,就會把備用機器激活,保證應(yīng)用繼續(xù)提供服務(wù)。

2)雙機互備
雙機熱備技術(shù)的擴展,當(dāng)一個服務(wù)器出現(xiàn)故障時,另一臺機器可以很快把服務(wù)接管過來,保證業(yè)務(wù)連續(xù)性。

3)Oracle DataGuard
DataGuard環(huán)境也有多個數(shù)據(jù)庫節(jié)點,其中一個是活躍的,其余為備用狀態(tài)Standby,由Primary節(jié)點對外提供服務(wù),Primary節(jié)點和Standby節(jié)點之間通過日志傳遞,日志恢復(fù)機制實現(xiàn)數(shù)據(jù)同步。當(dāng)Primary節(jié)點發(fā)生故障時,可以由DBA或者系統(tǒng)自動進行Primary、Standby角色切換。

區(qū)別:DataGuard環(huán)境中的兩個或者多個主機 并不需要共享存儲設(shè)備,每個有自己的存儲數(shù)據(jù),其次DataGuard環(huán)境中并不需要心跳機制。

2.RAC集群

邏輯上看,RAC集群由存儲層、網(wǎng)絡(luò)層、集群件層、應(yīng)用層4層組成

存儲層:
RAC是一個多實例、單份數(shù)據(jù)的系統(tǒng)。數(shù)據(jù)文件、聯(lián)機日志文件、控制文件等文件在集群中只有一份。不管有幾個節(jié)點,這些節(jié)點都平等的使用這些數(shù)據(jù)文件。一般采用EMC等存儲陣列,每個服務(wù)器通過HBA卡和光纖線連接到存儲上。

網(wǎng)絡(luò)層:
RAC環(huán)境有3個物理網(wǎng)絡(luò)存在:
一個是由每臺服務(wù)器的Public網(wǎng)卡組成的網(wǎng)絡(luò),對外提供數(shù)據(jù)查詢等服務(wù);
一個是由每臺服務(wù)器的Private網(wǎng)卡組成的私有網(wǎng)絡(luò),用于RAC心跳網(wǎng)絡(luò)和Cache Fusion
一個是存儲設(shè)備、光纖交換機、每個節(jié)點HBA組成的存儲網(wǎng)絡(luò)。

前兩個傳輸IP數(shù)據(jù),后一個傳輸SCSI數(shù)據(jù)

集群件層:

Clusterware會在OS Kernel之前截獲數(shù)據(jù)庫發(fā)出的請求,然后和其他節(jié)點上Clusterware協(xié)商,最終完成上層請求。

應(yīng)用層:
整個應(yīng)用層由若干CRS組成,可以簡單的理解,一個Resource通常是一個進程、或者由一組進程組成的一個完整服務(wù)。

3.RAC集群環(huán)境問題3.RAC集群環(huán)境問題

1)并發(fā)控制
集群環(huán)境只能很高數(shù)據(jù)是共享存放,而集群內(nèi)各個節(jié)點身份是對等的,所有節(jié)點對數(shù)據(jù)有相同的訪問權(quán)利。利用DML(Distribute Lock Management)機制進行多個實例間的并發(fā)控制。

2)健忘癥
兩個節(jié)點集群,節(jié)點1因為正常的維護需要被關(guān)閉,然后在節(jié)點2修改了某些配置,然后關(guān)閉了節(jié)點2,啟動節(jié)點1,因為節(jié)點2的配置修改沒有同步到節(jié)點1,所以節(jié)點1啟動后仍然使用舊配置文件工作,這時就會造成配置丟失,就是所謂的“健忘癥”。

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

解決腦裂的通常辦法是使用投票算法
集群中各節(jié)點需要心跳機制來通報彼此“健康狀況”,假設(shè)每收到一個節(jié)點的“通報”代表一票。對于一個三節(jié)點集群,正常運行時,每個節(jié)點都會有3票,假設(shè)節(jié)點1的心跳出現(xiàn)故障,但是節(jié)點1還在運行:這時整個集群就分裂成兩個小的partition,節(jié)點1自己是一個partition,節(jié)點2和節(jié)點3是一個partition。這時就必須剔除一個partition,應(yīng)該剔除哪一個?

這時節(jié)點2和節(jié)點3組成的partition,每個節(jié)點有兩票:節(jié)點1自己一個partition,節(jié)點1只有一票。節(jié)點2和節(jié)點3組成的小集群獲得控制權(quán),而節(jié)點1被踢出,由節(jié)點2和節(jié)點3組成的新的集群繼續(xù)對外提供服務(wù)。

如果集群中只有兩個節(jié)點,則就必須引入第三個設(shè)備Quorum Device。

Quorum Device通常采用共享磁盤,這個磁盤叫Quorum Disk。整個Quorum Disk也代表一票。當(dāng)心跳出現(xiàn)故障時,兩個節(jié)點同時去爭取Quorum Disk這一票,最早到達的請求最先被滿足,最后到達的節(jié)點就無法獲得這一票,只有一票的節(jié)點就會被踢出集群。

4)IO隔離
為了保證被踢出集群的節(jié)點不能操作共享數(shù)據(jù),這就是IO隔離要解決的問題。
有軟硬兩種方式:
支持SCSI Reserve/Release命令的存儲設(shè)備,可以用SG命令實現(xiàn)。正常節(jié)點使用SCSI Reserve命令“鎖住”存儲設(shè)備,故障節(jié)點發(fā)現(xiàn)存儲設(shè)備被鎖住后,就知道自己已經(jīng)被趕出集群了,就要自行重啟,這個機制也叫自殺。

STONTH是另一種實現(xiàn)方式,直接操作電源開關(guān)。當(dāng)一個節(jié)點發(fā)生故障時,另一節(jié)點如果能偵測到,就會通過串行口發(fā)出命令,控制故障節(jié)點的電源開關(guān),通過暫時斷電而后又上電的方式使得故障節(jié)點被重啟動,這種方式需要硬件支持。

Oracle RAC采用的是軟件方式,直接重啟故障節(jié)點。

5.RAC優(yōu)點

  • 增加可用性
  • 增加擴展能力
  • 增加可維護性
  • 減少總持有成本

1)增加可用性
RAC確實可以有效較少計劃外宕機時間,但也不是百分百消除,讓然會有部分停止響應(yīng)時間。
當(dāng)一個節(jié)點或者實例Failed時,RAC Database會發(fā)生Crash Recovery。在其他健康節(jié)點上的Oracle Clusterware軟件能夠檢查到這個節(jié)點或者實例Failure,并通知其他節(jié)點。最先察覺到發(fā)生故障的那個節(jié)點,會讀取故障節(jié)點的聯(lián)機日志內(nèi)容(從最后一次檢查點開始讀起),并且把這些日子在數(shù)據(jù)庫上重演,這個過程就是前滾(roll-forward),然后所有未提交的事物被回滾撤銷掉(roll-back)。在前滾和回滾過程中,整個集群處于凍結(jié)狀態(tài)forzen,這個節(jié)點不能處理任何請求,只有全部完成后,才能繼續(xù)對外提供服務(wù)。這個過程叫做“brown-out”階段。知識這個階段可能很短。

但是,RAC環(huán)境數(shù)據(jù)本身只有一份,沒有任何冗余數(shù)據(jù),同時結(jié)構(gòu)也變復(fù)雜,包括共享存儲、私有網(wǎng)絡(luò)、光纖網(wǎng)絡(luò)也引入了更多的故障點。升級也變的復(fù)雜,數(shù)據(jù)庫升級必須關(guān)閉整個數(shù)據(jù)庫,不能減少計劃內(nèi)宕機時間。

2)擴展性
通過增加資源的方式導(dǎo)致系統(tǒng)吞吐量增長。
對于RAC而言,最好的擴展能力是1.8,應(yīng)為數(shù)據(jù)庫擴展能力很大部分取決于應(yīng)用系統(tǒng)的使用方式。

3)容易管理
原來企業(yè)中有多個數(shù)據(jù)庫,通過 部署RAC把原來多個數(shù)據(jù)庫整合成一個多節(jié)點的RAC數(shù)據(jù)庫,隨著數(shù)據(jù)庫減少,DBA管理任務(wù)自然減少。

但是RAC環(huán)境下,升級是一個很復(fù)雜的操作,其次多應(yīng)用整合到一個數(shù)據(jù)庫中,RAC宕機將影響更多的應(yīng)用系統(tǒng),計劃內(nèi)宕機時間更短,人力成本更高。


是否應(yīng)該選擇RAC,最有資格做決定是DBA自己,因為只有你自己知道你的需求、預(yù)算、預(yù)期。一定要問清自己想通過RAC解決什么問題。RAC并不是包治百病的“萬金油”,因此,在考慮RAC之前一定要確定你已經(jīng)考慮過其他解決方案。


一個好或者壞的系統(tǒng)都是被設(shè)計出來的,最初的視野決定了最終系統(tǒng)的負(fù)載能力。決定選擇RAC之前,一定要確保理解了RAC的優(yōu)缺點,一定要確保其他方案無法奏效,只有RAC一條路可以走。那種單節(jié)點表現(xiàn)極差,并且沒有做過任何調(diào)整,就企圖用RAC解決性能問題的,無異于自尋死路。


<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

轉(zhuǎn)載于:https://www.cnblogs.com/xiangqianzhang/p/9082961.html

總結(jié)

以上是生活随笔為你收集整理的集群、RAC和MAA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。