Oracle ADG 自動切換指令碼分享
阿新 • • 發佈:2022-03-16
為大家分享一個【Oracle ADG自動切換】的指令碼,由雲和恩墨工程師HongyeDBA編寫,支援Switchover、Failover。
下載連結:https://www.modb.pro/download/5
DG環境需求
- DG使用服務名必須靜態註冊
- 切換機器必須安裝oracle client
- 切換機器配置tnsnames.ora(需要連線到主庫和備庫,Rac需要配置多個節點的Tns別名)
- 程式不進行自動判斷是否Failover操作
- 如果需要mount磁碟組,必須配置log_file_name_convert
額外環境說明
Switchover
- 主庫使用SESSION SHUTDOWN進行切換
- 備庫正常啟用
Failover
-
如果主庫存活
主庫會嘗試使用flush redo to dg進行操作(僅支援11G) -
如果主庫不存活,存在儲存複製(僅支援ASM)
存在儲存複製把redo和控制檔案複製到備端,請啟用儲存複製盤並設定正確的許可權
指令碼會嘗試使用此控制檔案和redo進行起庫,如果啟動會嘗試使用備庫控制檔案啟動(在此失敗請人工處理) -
如果主庫不存活,不存在儲存複製
主動啟用備庫
引數說明
INFO: InitLogfile Logfile : /tmp/dgSwitch-travel.trc ============================================================================= This script is used to Switch Oracle Database DataGuard. ============================================================================= Usage : perl dgSwitch.pl -P <SYS's Password> -p <TNS Alias> -s <TNS Alias> -P : Specify the Password for SYS User, default:oracle -p : Specify the Operation Node for Primary Site : Rac Need All nodes [-p "orcl1 orcl2"] -s : Specify the Operation Node for Standby Site : Rac Need All nodes [-p "orcldg1 orcldg2"] -f : Use Failover Method to do Switchover -m : Standby Database Machine Memory Size(Mb) : if set program Auto Set Sga , if not set not modify Sga Parameter -i : ignore database params check -c : Only Check Something,same -S 0 -S : <step #> Run the step # at a timeOnly Run One Step -r : <num-num> Run the steps one after the other as long as no errors Demo : Single:Single : dgSwitch.pl -p orcl -s orcldg Rac:Single : dgSwitch.pl -p "orcl1 orcl2" -s orcldg Single:Rac : dgSwitch.pl -p orcl -s "orcldg1 orcldg2" Rac:Rac : dgSwitch.pl -p "orcl1 orcl2" -s "orcldg1 orcldg2" Need : : Will Query V$DATABSAE、DBA_HIST_TEMPFILE、DBA_TABLESPACES、DBA_TEMP_FILES : static register listener ,port 1522 : please set db_create_file_dest : please set db_recovery_file_dest,db_recovery_file_dest_size =============================================================================
- P sys使用者密碼,預設密碼Oracle
- p 主庫的tns別名,Rac需要輸入多個,自動取其中之一進行switch操作
- s 備庫的tns別名,Rac需要輸入多個,自動取其中之一進行switch操作
- f 明確指定進行failover操作
- c 盡進行DG check檢查
- m 指定備機的主機記憶體,會執行設定SGA操作
- i 忽略檢查過程中判斷引數問題
- S 執行單獨的一步(大寫),如
- -S 0 執行檢查步驟
- -S 1 主庫進行切換操作
- -S 2 備庫進行切換操作
- -S 3 新主庫進行切換操作
- -S 4 新住庫解決臨時表空間操作
- -S 5 新主庫解決服務名切換操作
- -S 6 Redo處理操作
- -S 7 新備庫進行切換操作
- -S 8 切換完成後檢查
- r 執行多個步驟,如
- -r 0-8 全部執行,預設步驟
- -r 0-6 DG切換,並只完成主庫操作
- -r 7-8 完成源主庫操作
切換步驟
切換暫時分為8步,0-7如下
./dgSwitch.pl -p orcl -s orcldg -l
INFO: InitLogfile Logfile : /tmp/dgSwitch-travel.trc
The steps in order are...
Step 0 = CheckDbStatus
Step 1 = primaryOP
Step 2 = standbyOP
Step 3 = NewprimaryOP
Step 4 = resolveTmp
Step 5 = CheckService
Step 6 = CheckRedo
Step 7 = newstandbyOP
Step 8 = CheckDBAfter
程式切換流程圖
failover
./dgSwitch.pl -p orcl -s orcldg -f
知道flashback,會在failover時開啟flaskback
./dgSwitch.pl -p orcl -s orcldg -f --flashback
檢視下載連結:https://www.modb.pro/download/5
墨天輪,圍繞資料人的學習成長提供一站式的全面服務,打造集新聞資訊、線上問答、活動直播、線上課程、文件閱覽、資源下載、知識分享及線上運維為一體的統一平臺,持續促進資料領域的知識傳播和技術創新。
關注官方公眾號: 墨天輪、 墨天輪平臺、墨天輪成長營、資料庫國產化 、資料庫資訊