• Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇


    1. dataguard主备切换

      1.1. 查看当前主备库是否具备切换条件

    • on slave
    select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log);
    
     SEQUENCE#   FIRST_TIME             NEXT_TIME            ARCHIVED     APPLIED
    ----------   -------------------   -------------------   ---------    ---------------------------
        51     2017-07-03 22:00:41    2017-07-04 17:04:55   YES           IN-MEMORY
    
    select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log);
    
     SEQUENCE# FIRST_TIME           NEXT_TIME       ARCHIVED  APPLIED
    ---------- ------------------- ------------------- --------- ---------------------------
        51 2017-07-03 22:00:41 2017-07-04 17:04:55 YES         IN-MEMORY
    
    select PROCESS,SEQUENCE#,STATUS from v$managed_standby;
    
    PROCESS                  SEQUENCE#   STATUS
    --------------------------- ---------- ------------------------------------
    ARCH                      47       CLOSING
    ARCH                      50       CLOSING
    ARCH                       0        CONNECTED
    ARCH                      51       CLOSING
    RFS                        0           IDLE
    RFS                       52       IDLE
    RFS                        0       IDLE
    MRP0                      52       APPLYING_LOG
    •  on master
    select SEQUENCE#,STATUS from v$log order by SEQUENCE#;
    
     SEQUENCE#   STATUS
    ---------- ------------------------------------------------
        50     INACTIVE
        51     INACTIVE
        52     CURRENT
    
    column DATABASE_ROLE format a20
    column OPEN_MODE format a15
    column PROTECTION_MODE format a20
    column SWITCHOVER_STATUS format a20
    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE         OPEN_MODE       PROTECTION_MODE      SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PRIMARY              READ WRITE      MAXIMUM PERFORMANCE  TO STANDBY

      1.2. 将主库转换为备库

    alter database commit to switchover to physical standby with session shutdown;
    startup mount;
    alter database recover managed standby database using current logfile disconnect from session;
    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE         OPEN_MODE        PROTECTION_MODE      SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PHYSICAL STANDBY      MOUNTED          MAXIMUM PERFORMANCE  TO PRIMARY

      1.3. 将备库转换为主库

    column DATABASE_ROLE format a20
    column OPEN_MODE format a15
    column PROTECTION_MODE format a20
    column SWITCHOVER_STATUS format a20
    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE        OPEN_MODE       PROTECTION_MODE      SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PHYSICAL STANDBY     MOUNTED         MAXIMUM PERFORMANCE  TO PRIMARY
    
    alter database commit to switchover to primary;
    alter database open;
    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE        OPEN_MODE      PROTECTION_MODE       SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PRIMARY              READ WRITE     MAXIMUM PERFORMANCE   TO STANDBY

      1.4. 测试主备数据同步状态

    • on primary
    select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log);
    
     SEQUENCE# FIRST_TIME          NEXT_TIME          ARCHIVED  APPLIED
    ---------- ------------------- ------------------- --------- ---------------------------
        54   2017-07-05 02:30:34 2017-07-05 02:30:40  YES       NO
        54   2017-07-05 02:30:34 2017-07-05 02:30:40  YES       YES
    
    alter system archive log current;
    alter system archive log current;
    
    select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log);
    
     SEQUENCE# FIRST_TIME           NEXT_TIME          ARCHIVED  APPLIED
    ---------- ------------------- ------------------- --------- ---------------------------
        56   2017-07-05 02:40:01  2017-07-05 02:40:03 YES       NO
        56   2017-07-05 02:40:01  2017-07-05 02:40:03 YES       NO
    • on standby
    select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log);
    
     SEQUENCE# FIRST_TIME          NEXT_TIME           ARCHIVED  APPLIED
    ---------- ------------------- ------------------- --------- ---------------------------
        56     2017-07-05 02:40:01 2017-07-05 02:40:03 YES       IN-MEMORY

    2. dataguard故障转移

      2.1. 前提:主库已经挂掉

      2.2. 将备库强制转换为主库

    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE        OPEN_MODE       PROTECTION_MODE      SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PHYSICAL STANDBY     MOUNTED         MAXIMUM PERFORMANCE  NOT ALLOWED
    
    alter database recover managed standby database finish force;
    alter database commit to switchover to primary;
    shutdown immediate;
    startup;
    select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database;
    
    DATABASE_ROLE        OPEN_MODE       PROTECTION_MODE      SWITCHOVER_STATUS
    -------------------- --------------- -------------------- --------------------
    PRIMARY              READ WRITE      MAXIMUM PERFORMANCE  FAILED DESTINATION

      2.3. 重建备库

  • 相关阅读:
    APP 弱网测试可能会出现的bug
    Monkey 稳定性测试
    设计模式 策略模式
    设计模式 单例模式
    Linux常用命令(三)文件权限管理
    Linux常用命令(二)文件目录管理命令
    Linux常用命令(一)
    WSL安装yum报错:E: Unable to locate package yum
    使用LxRunOffline迁移WSL
    关于PyQt5 setPalette 设置背景不生效问题
  • 原文地址:https://www.cnblogs.com/ilifeilong/p/7122670.html
Copyright © 2020-2023  润新知