1. 程式人生 > 其它 >Oracle ADG 自動切換指令碼分享

Oracle ADG 自動切換指令碼分享

為大家分享一個【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

墨天輪,圍繞資料人的學習成長提供一站式的全面服務,打造集新聞資訊、線上問答、活動直播、線上課程、文件閱覽、資源下載、知識分享及線上運維為一體的統一平臺,持續促進資料領域的知識傳播和技術創新。

關注官方公眾號: 墨天輪、 墨天輪平臺、墨天輪成長營、資料庫國產化 、資料庫資訊