本篇文章給大家帶來了關于Oracle的相關知識,其中主要介紹了RAC的相關問題,Oracle Real Application Cluster用來在集群環境下實現多機共享數據庫,以保證應用的高可用性,希望對大家有幫助。
推薦教程:《Oracle教程》
應對業務量的不斷增加場景通常有兩個大方向,一種是縱向擴展,也就是增加單臺服務器的CPU計算能力、內存容量和磁盤承載能力等;另外一種是橫向擴展,也就是通過增加服務器的數量來增加處理能力。前者存在業務中斷和擴展上限等諸多的問題,特別是互聯網業務的迅猛發展,單臺服務器幾乎無法滿足業務負載要求,因此目前比較流行的方式橫向擴展的方式。
什么是Oracle RAC?
Oracle Real Application Cluster (RAC,實時應用集群)用來在集群環境下實現多機共享數據庫,以保證應用的高可用性;同時可以自動實現并行處理及負載均衡,并能實現數據庫在故障時的容錯和無斷點恢復。它是oracle數據庫支持網絡計算環境的核心技術。
共享存儲多活集群
在該架構中集群中多個節點運行的是同一個數據庫實例,數據完全一致,并且用戶層面無論從哪個節點訪問,獲取到的數據都是相同的。下圖是Oracle RAC的示意圖,通過3個節點構成一個集群,它們共享數據。
RAC 的特點可總結如下:
- 節點互聯起來,向外顯示為1臺服務器;
- 集群軟件把內部結構掩藏起來;
- 磁盤是共享的;
- 每臺機器使用相同的操作系統;
- 多個實例訪問同一個數據庫;
- 每個節點有一個實例;
- 數據庫文件支持物理或邏輯訪問;
- 數據的讀寫通過軟件控制。
Oracle RAC和單個數據庫服務器的區別
如下圖,主要區別還是RAC是集群式數據庫,通過集群軟件管理。
Oracle RAC硬件架構
為了保證整個集群的可用性,Oracle RAC在部署的時候對硬件有比較多的要求。在網絡層面,Oracle RAC總共有3個網絡系統,分別是外部訪問網絡、內部私有網絡和存儲網絡。
外部訪問網絡不用多說,相信大家都理解。內部私有網絡則主要用來進行Oracle集群內部使用,包括數據傳輸、心跳和集群管理等。這部分網絡在部署的時候要求雙交換機和雙物理鏈路,保證不會因為鏈路故障導致集群異常。后面是存儲網絡,存儲網絡用于RAC集群訪問存儲資源,這部分也是鏈路冗余的。
再比如下圖,為一個兩節點RAC系統,可以看出,從主機到交換機,都做了冗余,無論哪臺設備出了故障,業務不會受影響。共享存儲是自帶RAID冗余的。
其中,主機叫做節點(Node),它們要有相同的CPU、內存等配置,每臺至少兩個網卡,訪問內外網,還有HBA卡連接共享存儲,但