ADG网络故障恢复演练

演练背景

客户计划五一之后对核心生产环境的ADG数据库进行恢复演练,就是切断主备之间的网络,将备库升级为主库,待网络恢复后,在恢复原状。一开始计划流程如下:

  1. 模拟网络切断
  2. 备库switchover为主库
  3. 网络恢复,主库降级为备库
  4. 然后手动switchover ,恢复原状。

但是在测试环境测试的,切断网络后,备库无法switchover为主库,只能failover,而且一旦failover后,主库想降级为备库,也报错“ORA-16416: No viable Physical Standby switchover targets available”这时只有两个办法

  • 重新同步数据到原主库
  • 闪回

所以正确的流程如下:

  1. 模拟网络切断
  2. 备库failover为主库
  3. 网络恢复,主库闪回到断网前的状态
  4. 主库降级为备库
  5. 然后手动switchover ,恢复原状。

下面是利用闪回数据库,来进行ADG网络故障恢复演练

实验步骤

确保主库开启闪回

SQL> select name,open_mode,DATABASE_ROLE ,switchover_status,FLASHBACK_ON from v$database;

NAME      OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS    FLASHBACK_ON
--------- -------------------- ---------------- -------------------- ------------------
PROD      READ WRITE           PRIMARY          TO STANDBY           YES

如果没有开启,按照下面步骤开启

备库停止日志应用,主库启动到mount 状态
alter system set  DB_RECOVERY_FILE_DEST_SIZE=10G;
ALTER SYSTEM SET db_recovery_file_dest = '/oceanbase/oracle/fra/';
alter database flashback on;
alter database open;   

为安全起见,redo日志做下归档

alter system switch logfile;
alter system archive log current;

切断网络

我用的VirtualBOX,直接关闭右下角的网卡

备库强制归档日志应用

alter database recover managed standby database cancel; --关闭日志应用
alter database recover managed standby database finish force; --强制应用归档日志

备库failover为主库

alter database commit to switchover to primary with session shutdown wait;
alter database open;

查看备库升级为主库的scn号

SQL> SELECT STANDBY_BECAME_PRIMARY_SCN FROM V$DATABASE;

STANDBY_BECAME_PRIMARY_SCN
--------------------------
                   1775200  --这个就是原主库需要闪回到的时间点

网络恢复,主库重新启动到mount

startup mount;
flashback database to scn 1775200;

主库降级为主库

 alter database convert to physical standby;
alter database open;

开启应用日志

alter database recover managed standby database using current logfile disconnect from session;

查看日志应用状态

SQL> select process,pid,status,thread#,sequence#,delay_mins from v$managed_standby;

PROCESS   PID                      STATUS          THREAD#  SEQUENCE# DELAY_MINS
--------- ------------------------ ------------ ---------- ---------- ----------
ARCH      16574                    CONNECTED             0          0          0
ARCH      16576                    CONNECTED             0          0          0
ARCH      16578                    CLOSING               1          2          0
ARCH      16580                    CONNECTED             0          0          0
DGRD      16582                    ALLOCATED             0          0          0
DGRD      16584                    ALLOCATED             0          0          0
RFS       16645                    IDLE                  0          0          0
RFS       16654                    IDLE                  1          3          0
RFS       16649                    IDLE                  0          0          0
RFS       16651                    IDLE                  0          0          0
MRP0      16722                    APPLYING_LOG          1          3          0

此时原备库升级为主库,原主库降级为备库。接下来就是恢复原状了

当前redo归档

alter system archive log current;

新主库switchover为备库

alter database commit to switchover to physical standby with session shutdown;
shutdown immediate;
startup mount;

新备库升级为主库

alter database commit to switchover to primary with session shutdown wait;
alter database open;

备库开启,并开启日志应用

alter database open;
alter database recover managed standby database using current logfile disconnect from session;

验证日志应用状态


SQL> select process, pid, status, thread#,sequence#,blocks from v$managed_standby;

PROCESS   PID                      STATUS          THREAD#  SEQUENCE#     BLOCKS
--------- ------------------------ ------------ ---------- ---------- ----------
ARCH      17017                    CLOSING               1          6          1
DGRD      17019                    ALLOCATED             0          0          0
DGRD      17021                    ALLOCATED             0          0          0
ARCH      17023                    CONNECTED             0          0          0
ARCH      17027                    CONNECTED             0          0          0
ARCH      17025                    CLOSING               1          7        371
RFS       17061                    IDLE                  0          0          0
RFS       17063                    IDLE                  1          8          1
RFS       17065                    IDLE                  0          0          0
MRP0      17158                    APPLYING_LOG          1          8     409600
DGRD      17175                    ALLOCATED             0          0          0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南風_入弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值