基於權重的節點驅逐-Oracle RAC 12.2 新特性
在 Oracle RAC 中,多個節點之間需要能夠正常通信來保持集群的一致性。當一個節點發生故障或者發生腦裂,節點因網路等原因不能與其他節點互通時,很可能會在集群重新配置的過程中被驅逐出去。
RAC 的重新配置包含兩個層面,一個是集群層面的,在發生腦裂的時候一般是基於編號做節點驅逐;另一個是實例層面的,這時候是根據節點獲得的 RR 鎖的許可權判斷的。在12.2之前,通過以上兩種方式的重新配置,系統可以通過規則和計算自動決定哪個節點將會被驅逐出去。
而從12.2開始,引入了基於權重的節點驅逐。
在官網對該功能的介紹如下:
在 Oracle Clusterware 需要從集群中驅逐特定節點或一組節點的情況下,基於伺服器權重的節點驅逐作為一種決勝機制,在這種情況下,所有節點代表驅逐的平等選擇。 在這種情況下,基於伺服器權重的節點驅逐機制有助於基於有關這些伺服器上的負載的附加信息來識別要驅逐的節點或節點組。存在兩種主要機制,即系統固有的自動機制和基於用戶輸入的機制,以提供相應的指導。
使用基於伺服器權重的節點驅逐允許在集群中的某些故障與業務需求之間調整哪個節點被逐出的選擇,確保最重要的工作負載儘可能長時間保持活動,假設伺服器之間的相等選擇。
也就是說,12.2中的節點驅逐不是有系統自動決定的,而是可以根據業務關係,做更精細的控制。避免自動模式下的偏差對核心業務的影響。
特性介紹
可以手動設置 Oracle RAC 集群故障恢復機制,在節點不能互相通信的時候,該機制就會生效,決定哪些節點會被驅逐出去。
在腦裂的情況下,當集群發生了網路分裂,會將集群的節點劃分為若干個不相交的分組,集群管理軟體會通過特定的規則將部分節點從集群中踢出去。一般來說,會把那些大量佔用系統關鍵資源的節點踢出去。
可以通過向資料庫實例或節點添加值來影響決策的結果,以便在 Oracle Clusterware 必須決定是驅逐還是終止時,會考慮這些因素並嘗試確保所有關鍵組件都可用。可以配置權重函數來為群集中的關鍵組件添加權重,從而在決定在解決裂腦情況時排除哪些節點時增加輸入。
使用與配置
在一些場景下,用戶可能希望確保特定的節點不會在基於默認的投票規則中被踢出去,或者是為了保持某些硬體特性,某些資源因為特定的資料庫或服務而存活,因此引入基於權重的驅逐。 用戶可以根據以下標準為特定節點,資源或服務分配權重:
只將權重分配給由 administrator 管理的節點。
可以將權重分配給已註冊 Oracle Clusterware 資源的伺服器或應用程序。
權重有助於協調不同組件的重要等級,並影響 Oracle Clusterware 在管理裂腦情況時所做的選擇。 在其他關鍵因素相同的情況下,Oracle 集群件選擇權重最高的的節點保留在集群中。
使用場景
可以為各種組件分配權重,如下所示:
為資料庫實例或服務分配權重,可以在添加資料庫實例或服務時將 -css_critical yes 參數與 srvctl add 資料庫或 srvctl add service 命令一起使用。 也可以使用 srvctl modify database 和 srvctl modify service 命令的參數。
為非 ora.* 資源分配權重,請在添加或修改資源時使用 crsctl add resource 和 crsctl modify resource 命令的 「attr」CSS_CRITICAL = yes 參數。
為伺服器分配權重,請使用 crsctl set server 命令使用 -css_critical yes 參數。
Note:
必須重新啟動節點上的 Oracle Clusterware 堆棧以使配置生效。 這不適用於更改在無需重新啟動資源的情況下生效的資源。
如果從託管管理員更改策略管理環境或兩者的混合環境,則已分配的任何權重都將被存儲,但不會被考慮,這意味著除非重新配置集群,否則將不再應用或不予考慮回到管理員管理。
資源下載
關注公眾號:數據和雲(OraNews)回復關鍵字獲取
『2017DTC』,2017DTC大會PPT
『DBALIFE』,「DBA的一天」海報
『DBA04』,DBA手記4經典篇章電子書
『RACV1』,RAC系列課程視頻及ppt
『122ARCH』,Oracle 12.2體系結構圖
『2017OOW』,Oracle OpenWorld資料
『PRELECTION』,大講堂講師課程資料
※新增視圖找出外部 SCN 跳變
※續:跨平台版本遷移之 XTTS 方案操作指南
TAG:雲和恩墨 |