• 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

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

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

  • 相关阅读:
    重载运算符 && 构造函数 的写法
    2019 ICPC Asia Xuzhou Regional
    中国剩余定理
    求逆元
    Exgcd
    Leading Robots
    大家好
    AtCoder Grand Contest 047 部分题解
    CodeForces 1389E Calendar Ambiguity 题解
    CodeForces 1380F Strange Addition 题解
  • 原文地址:https://www.cnblogs.com/modb/p/16012223.html
Copyright © 2020-2023  润新知