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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

集群、RAC和MAA

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

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

一、集群技術基礎

1.集群地址

維護集群地址的設施被稱為負載均衡器。對內負責管理各節點加入和退出,對外負責集群地址向內部實體地址轉換。

2.內部通信

節點間心跳測試信息、服務實體間任務執行上下文信息的通信。

3.集群仲裁

二、集群術語

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

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

2.兩大核心能力:負載均衡和故障轉移

負載均衡:把處理任務盡可能均衡的分散到集群中的每個節點和網絡資源。
故障轉移:集群中正在執行任務的服務出現故障,另一服務實體中執行同一任務的資源將接手并繼續完成任務,這個過程叫故障轉移。

三、集群組成元素

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

  • Node
    Cluster中的一個主機

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

四、集群分類

根據不同功能分類

  • 高性能計算集群
    將計算任務分配到不同計算節點來提高整體計算能力,多見于搜索引擎、文本挖掘等互聯網業務。

  • 負載均衡集群(LB)
    核心是把業務的負載流量盡可能平均合理的分攤到集群各個節點。每個節點可以處理一部分負載,并且可以根據節點負載進行動態平衡。

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

五、Oracle高可用架構(MAA)

最大可用性體系架構

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

1.MAA實例

MAA核心思想就是冗余,通過數據、軟件、硬件、網絡等各種組件的冗余,實現最大程度的數據保護。

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

2)雙機互備
雙機熱備技術的擴展,當一個服務器出現故障時,另一臺機器可以很快把服務接管過來,保證業務連續性。

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

區別:DataGuard環境中的兩個或者多個主機 并不需要共享存儲設備,每個有自己的存儲數據,其次DataGuard環境中并不需要心跳機制。

2.RAC集群

邏輯上看,RAC集群由存儲層、網絡層、集群件層、應用層4層組成

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

網絡層:
RAC環境有3個物理網絡存在:
一個是由每臺服務器的Public網卡組成的網絡,對外提供數據查詢等服務;
一個是由每臺服務器的Private網卡組成的私有網絡,用于RAC心跳網絡和Cache Fusion
一個是存儲設備、光纖交換機、每個節點HBA組成的存儲網絡。

前兩個傳輸IP數據,后一個傳輸SCSI數據

集群件層:

Clusterware會在OS Kernel之前截獲數據庫發出的請求,然后和其他節點上Clusterware協商,最終完成上層請求。

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

3.RAC集群環境問題3.RAC集群環境問題

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

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

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

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

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

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

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

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

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

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

5.RAC優點

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

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

但是,RAC環境數據本身只有一份,沒有任何冗余數據,同時結構也變復雜,包括共享存儲、私有網絡、光纖網絡也引入了更多的故障點。升級也變的復雜,數據庫升級必須關閉整個數據庫,不能減少計劃內宕機時間。

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

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

但是RAC環境下,升級是一個很復雜的操作,其次多應用整合到一個數據庫中,RAC宕機將影響更多的應用系統,計劃內宕機時間更短,人力成本更高。


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


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


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

轉載于:https://www.cnblogs.com/xiangqianzhang/p/9082961.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。