環境描述:html
1.節點描述
節點 IP |
節點描述 |
11.6.76.221 |
GG 抽取端 / DG 節點,數據庫版本號爲 Oracle-11.2.0.3,與 11.6.76.222 組成 DataGuard。 |
11.6.76.222 |
DG 節點,數據庫版本號爲 Oracle-11.2.0.3,與 11.6.76.221 組成 DataGuard。 |
192.168.87.221 |
GG 複製端,數據庫版本號爲 Oracle-11.2.0.4 |
2.拓撲結構
方案描述:
假設 11.6.76.221 最初爲 DataGuard 主節點,則接下來經過描述 DataGuard 主備快速切換的完整過程,實現方案描述。
1.斷開應用於數據庫鏈接(GG抽取端 / DG 主庫)
假設數據庫配置了專門用於應用鏈接的 Service,且應用均經過 Service 鏈接數據庫,則快速安全的操做步驟以下。
(1).中止應用系統;
(2).中止應用鏈接的 Service;
(3).Kill 應用會話;
(4).中止數據庫
計劃做業。
操做後,拓撲結構以下圖所示。
2.禁用備庫 Service(DG 備庫)
中止備庫 Service,防止 DataGuard 主備角色切換後,Service 自動啓動。
注意:在 Service 啓動的狀態下,應用系統將可以鏈接數據庫,
而此時 GG 切換仍未完成,極可能形成數據丟失。
3.檢查 GG 抽取所有完成(GG 抽取端 / DG 主庫)
隨着數據庫上應用鏈接的斷開、定時做業的中止,此時數據庫的數據處於靜止狀態。
注意:假若 DataGuard 切換的整個過程均能保證數據靜止,那麼 DG 切換後,只需重置 GG 抽取點便可實現 GG 快速切換。不然,直接基於 GG 官方方案切換,抽取進程需搜索 DG 切換點,其過程十分耗時,且難以實現自動化。具體參見《GoldenGate Installing and Configuring Oracle GoldenGate for Oracle Database》-11.6.4 Handling Role Changes In an ADG Configuration
所以,檢查 GG 抽取所有完成是
關鍵步驟,以下所示。
a.切換日誌組
因爲此時數據庫已經處於
靜止狀態,所以切換日誌組後,
最新日誌組上並無實際的 Redo 信息。
所以假若抽取進程已對最新日誌組進行抽取,即可以確認 GG 抽取所有完成。
b.檢查 GG 抽取進程當前 Seqno 狀態
經過 GGSCI>
info [process_name] 方式,檢查 GG 抽取進程當前的 Seqno 狀態。
假設切換後最新
在線日誌組 Sequence 號爲 22753,則進程抽取 Seqno 也爲 22753 時,則證實 GG 抽取所有完成。
4.DG 切換(GG 抽取端 / DG 主庫、DG 備庫)
進行 DataGuard 主備切換後,拓撲內各節點的狀態以下。
節點 IP |
節點狀態 |
11.6.76.221 |
仍爲 GG 抽取端,DataGuard 角色由 Primary -> Standby。因爲角色發生了變化,所以將致使傳統抽取模式下的抽取進程掛起,處於 Abend 狀態。 |
11.6.76.222 |
DataGuard 角色由 Standby-> Primary。 |
192.168.87.221 |
仍爲 GG 目標端。 |
主備切換後,拓撲結構以下所示。
5.切換 GG 抽取模式(GG 抽取端 / DG 現備庫)
爲保證 DG 角色切換後,傳統抽取進程能正常對 Standby Redo 進行抽取,須要切換 GG 抽取模式爲
ADG 模式。具體經過在抽取參數文件中新增以下參數。
TRANLOGOPTIONS MINEFROMACTIVEDG
注意:因爲數據庫處於靜止狀態,新增抽取參數後,可直接重置抽取點爲當前,並重啓進程,實現 GG 模塊快速切換。操做步驟以下所示:
GGSCI>
alter extract [process_name], tranlog, begin now
start [process_name]
例如:切換名爲 EIVR 的 GG 抽取進程操做以下。
GGSCI>
alter extract EIVR, tranlog, begin now
start EIVR
切換 GG 抽取模式後,拓撲結構以下所示。
6.啓用並啓動備庫 Service(DG 現主庫)
啓用切換後 DG 主庫 Service,並
啓動 Service 進程,準備應用接入。
7.重啓應用
基於 DNS 解析,切換應用鏈接至 DG 切換後的主庫。重啓應用及數據庫做業,
完成完整切換。
重啓應用後,拓撲結構以下所示。
參考文檔:
1.《
GoldenGate 傳統抽取進程的 ADG 模式
》
2.《GoldenGate Installing and Configuring Oracle GoldenGate for Oracle Database》
-11.6 Configuring Classic Capture in Oracle Active Data Guard Only Mode