Oracle RAC相關以及基礎知識

2021-06-16 03:34:08 字數 4676 閱讀 2744

rac相關以及基礎知識

一 rac相關以及基礎知識

1.crs簡介從oracle 10g開始,oracle引進一套完整的集群管理解決方案—-cluster-ready services,它包括集群連通性.訊息和鎖.負載管理等框架.從而使得rac可以脫離第三方集群件,當然,crs與第三方集群件可以共同使用.

(1).crs程序

crs主要由三部分組成,三部分都作為守護程序出現

<1>crsd:資源可用性維護的主要引擎.它用來執行高可用性恢復及管理操作,諸如維護ocr及管理應用資源,它儲存著集群的資訊狀態和ocr的配置,此程序以root許可權執行.

<2>evmd:事件管理守護程序.此程序還負責啟動racgevt程序以管理fan伺服器端呼叫,此程序以root許可權執行

<3>ocssd:集群同步服務程序.管理集群節點的成員資格,它以fatal方式啟動,因此程序發生故障將導致集群重啟,以防止資料壞死. 同時,css還維護集群內的基本鎖功能,以及負責監控voting disk的腦裂故障。它以oracle許可權執行

此外,還有乙個程序oprcd,他是集群中的程序監視程式,僅當平台上的crs不使用廠商群件時候才出現,且無論執行了多少例項,每個節點只會存在一組後台程序.

來看一下這幾個守護程序:

rac1-> cat /etc/inittab

…………………………… .

# run xdm in runlevel 5

x:5:respawn:/etc/x11/prefdm –nodaemon

h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1(2).virtual ip address

oracle 10g rac下,有3個重要的ip.

① public ip ② private ip ③ vitual ip

public ip為資料庫所在主機的公共網路ip,private ip被用來私有高速互聯,而oracle較前版本,增加了乙個虛擬ip,用來節點發生故障時候更快的故障轉移,oracle利用每個節點的lisnter 偵聽vip,一旦發生故障,vip將進行實際的故障切換,從而在其他的可用的節點上保持聯機,從而降低客戶應用程式意識到節點故障所需要的時間。

vip與public ip必須在同乙個網段內。

(3).ocr,voting disk

ocr(oracle集群登錄檔)和voting disk(表決磁碟)是crs下的兩個重要元件,它們必須放在共享磁碟上,以保證每個節點都能對其訪問。

ocr包含了針對集群的一些配置資訊,諸如:集群資料庫中的節點列表.crs應用程式.資源檔案以及事件管理器的授權資訊。他負責對集群內的資源追蹤,從而獲知資源正在**執行,應該可以在**執行。

voting disk用來解決split-brain故障:如果節點丟失了與集群中其他節點的網路連線,這些衝突由表決磁碟中的資訊來解決

2.asm相關

asm (automated storage management) 是oracle 10g引入的一種檔案型別,他提供了直接的i/o讀寫,是rac體系下一套不錯的對資料檔案儲存規劃的方案. asm可以自動管理磁碟組,並提供資料冗餘和優化.後面章節會就asm的管理以及asm下的rac管理,單獨講解.

3.rac儲存/網路需求

圖1.3 rac體系架構

(1).儲存需求

共享儲存器是rac的重要元件之一。它要求集群內的節點可以同時讀寫物理磁碟。目前,支援共享儲存的檔案型別也比較多,像oracle自身提供的asm,ocfs2以及三方提供的群集檔案系統,都是可以選擇的型別。

表1.1.1顯示了rac 體系架構下各部分所支援的儲存型別 (暫不考慮三方集群檔案系統,就asm/raw device/ocfs2和普通檔案系統來說)

表1.1.1 rac各部分所支援的儲存型別

類別 支援的儲存型別

儲存位置

備註cluster

軟體 ocfs2

,普通檔案系統

共享磁碟

/ 本地磁碟

ocr ,

voting disk

ocfs2

,raw device

共享磁碟

資料庫軟體

ocfs2

,普通檔案系統

共享磁碟

/ 本地磁碟

資料庫檔案

ocfs2

,raw device

,asm

共享磁碟

歸檔日誌檔案

ocfs2

,asm

,普通檔案系統

共享磁碟

/ 本地磁碟

備份/恢復檔案

ocfs2

,asm

,普通檔案系統

共享磁碟

/ 本地磁碟

閃回日誌檔案

ocfs2

,asm

共享磁碟

(2).網路需求

每個節點主機上至少需要2張物理網絡卡,以便分配公有ip和私有ip位址。對於私有ip連線,每個集群節點通過專用高速網路連線到所有其他節點,目的在於集 群上的節點和例項交換資訊狀態(鎖資訊,全域性快取資訊等)。通過高速互聯,cache fusion得以實現。

在實際環境中,高速互聯至少需要配置gb級的乙太網,而且,最好不要使用交叉直連。

較好的解決方案是節點間配置專用交換機,這樣避免因為集群上乙個節點宕掉而影響另外節點的正常工作。

4.其他

(1).後台程序

圖1.4.1 backgroud process in rac 10g

由於要維護多個例項同時訪問資源所必需的鎖定,因此,同single instance相比,rac下增加了額外的一些程序。專門針對rac的程序有如下幾種:

1. lms(global cache service) 全域性快取服務程序

lms負責為快取融合請求在例項間傳遞塊。當一致性請求的時候,lms首先回滾塊,建立塊的讀一致性映像(cr),然後將該一致性版本通過高速互聯傳遞到處理此請求的遠端例項中的前台程序上,lms程序保證了在同一時刻只允許乙個例項去更新資料塊。

lms程序的數量由初始化引數gcs_server_processes控制。oracle最大支援36個lms程序(0–9 and a–z),該初始化引數預設值為2。

2. lmd (global enqueue service daemon) 全域性佇列服務守護程序

lmd負責管理全域性佇列和全域性資源訪問,並更新相應佇列的狀態,此外還負責遠端節點資源的請求與死鎖的檢測。lmd與lms程序互交工作,共同維護grd。

3. lmon (global enqueue service monitor) 全域性佇列服務監控器程序

lmon是全域性佇列服務的監控器,他負責檢查集群內例項的死亡情況並發起重新配置,當例項加入或者離開集群的時候,它負責重新配置鎖和資源。

4. lck(lock process) 鎖程序

lck管理那些不是快取融合的請求,例如library cahe, row cache.由於lms程序提供了主要的鎖管理功能,因此每個節點例項上只有乙個lck程序。

diag (the diagnostic daemon)診斷守護程序

diag負責監控例項的健康狀況並捕獲程序失敗的資訊,並將失敗資訊寫入用於失敗分析,該程序自動啟動且不需要人為調整,若失敗則自動重新啟動。

(2).快取融合/快取一致性

cache fusion是rac工作原理的乙個中心環節.他的本質就是通過網際網路絡在集群內各節點的sga之間進行塊傳遞,從而避免了首先將塊推送到磁碟,然後再重 新讀入其他例項的快取中,從而最大限度的減少i/o。當乙個塊被讀入rac環境中某個例項的快取時,該塊會被賦予乙個鎖資源(與行級鎖不同),以確保其他 例項知道該塊正在被使用。之後,如果另乙個例項請求該塊的乙個拷貝,而該塊已經處於前乙個例項的快取內,那麼該塊會通過網際網路絡直接被傳遞到另乙個例項的 sga。如果記憶體中的塊已經被改變,但改變尚未提交,那麼將會傳遞乙個cr副本。這就意味著,只要可能,資料塊無需寫回磁碟即可在各例項快取之間移動,從 而避免了同步多例項的快取所花費的額外i/o,由此,需要網際網路絡的速度是高速的,需要快於磁碟訪問的速度.

gcs負責維護全域性緩衝區內的快取一致性,lms程序是其主要組成部分。gcs確保同一時刻某個塊上,只能有來自乙個例項上的程序能對其修改,同時,並獲 得該塊的當前版本和前映像,以及塊所處的狀態(null,,shared, exclusive),模式(local/gobal)。

ges負責維護dictionary cache和library cache快取一致性(這個與lck是不同的)。由於存在某個節點上對資料字典的修改(比如ddl和dcl對object屬性的修改),ges負責同步各 節點上的字典快取,消除差異。ges確保請求訪問相同物件的多個例項間不會出現死鎖。

grd包含了所有共享資源的當前狀態資訊,它由ges和gcs共同維護,grd貯存在記憶體中,被用來管理全域性資源活動。比如:當乙個例項第一次讀取某塊到 sga的時候,該塊的角色為local,gcs記錄此狀態到grd,一旦有另外的例項請求該塊,gcs會更新grd,將此塊的角色由local變為 global。

kafka基礎以及相關cmd操作

kafka 基於發布訂閱模式 一對多 訊息佇列 解耦,提高通訊效率 同步非同步 啟動kafka時出現 修改第179行,將裡面的 classpath 修改為 classpath 即可 cmd code,下面有擷取相關的介面 start zookeeper service port 2181 bin w...

kill以及xargs相關

引數 s 傳給程序乙個signal signal為9時 代表著強制kill掉這個程序 signal為15時 代表著告訴這個程序自行終止退出 kill s 9 pid kill 9 pid 這兩個具有一樣的效果組合一下 ps ef grep tianyu grep mysql cut c 9 15 x...

c 相關基礎

stl內存在哪 vector map set等標準容器預設都是使用記憶體分配器模板類allocator管理記憶體的分配 釋放。allocator呼叫new delete操作符進行批量的記憶體分配。所以在堆。首先我們知道c 中主要的記憶體儲存分配方式有 棧,堆,全域性 靜態儲存區,常量儲存區,自由儲存...