当前位置: 首页 > news >正文

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

相关文章:

  • 实现了一个基于寄存器操作STM32F103C8t6的工程, 并实现对PA1,PA2接LED正极的点灯操作
  • 如何提升个人的稳定性?
  • 蓝桥杯比赛
  • 基于BERT类的MRPC语义相似度检测(从0到-1系列)
  • 机箱结构的EMC设计
  • 5月1日日记
  • Window通过虚拟机17安装Ubuntu20.04并安装相关的插件(胎教级教程)
  • 进程与线程:04 内核线程
  • 2025年4月文章一览
  • 杜邦分析法
  • 实验五 完整性
  • openEuler 22.03 安装 Mysql 5.7,TAR离线安装
  • Java 基础--数组(Array):存储数据的“排排坐”
  • C语言中数字转化为字符串的方法
  • eNSP实验——防火墙 IPSec 配置
  • 【统计方法】方差分析(ANOVA):判断数据差异的统计方法
  • 【dify—9】Chatflow实战——博客文章生成器
  • Java 多线程进阶:线程安全、synchronized、死锁、wait/notify 全解析(含代码示例)
  • linux python3安装
  • 数字智慧方案6145丨智慧学校智能化系统设计方案(53页PPT)(文末有下载方式)
  • 2024年境内酒店住宿行业指标同比下滑:酒店行业传统增长模式面临挑战
  • 巴菲特股东大会前瞻:执掌伯克希尔60年,巨轮将驶向何方
  • 国家网信办举办在欧中资企业座谈会,就数据跨境流动等进行交流
  • 特朗普加征关税冲击波:美国零售、汽车、航空、科技企业纷纷预警业绩波动
  • 郭向阳任广东省公安厅分管日常工作副厅长(正厅级)
  • 海量数据处于“原矿”状态,数据价值释放如何破局?