乐趣区

关于数据库: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

墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号:墨天轮、墨天轮平台、墨天轮成长营、数据库国产化、数据库资讯

退出移动版