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

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
http://www.xdnf.cn/news/3374.html

相关文章:

  • tiktok web X-Bogus X-Gnarly 分析
  • FreeRTOS任务管理与通信机制详解
  • IPD研学:76页页基于IPD思想-华为需求管理培训方案【附全文阅读】
  • 初学python的我开始Leetcode题8-3
  • 第T10周:数据增强
  • python类私有变量
  • 【LeetCode 热题 100】3.无重复字符的最长子串:详解滑动窗口解法
  • 第3篇:请求参数处理与数据校验
  • [vscode]全局配置nim缩进
  • synchronized与Lock深度对比
  • 新能源行业供应链规划及集成计划报告(95页PPT)(文末有下载方式)
  • 2025五一杯数学建模C题:社交媒体平台用户分析问题;思路分析+模型代码
  • 嵌入式C语言的运算符与输入输出
  • 方案精读:58页华为:全面预算管理与实践【附全文阅读】
  • 补4月30日
  • python310 安装 tensorflow-gpu2.10
  • 内网穿透系列二:使用cpolar公开一个本地Web站点到公网
  • 补题:K - Magic Tree (Gym - 105231K)
  • Java 期中考试试题考点剖析
  • jupyter notebook汉化教程
  • 打包 Python 项目为 Windows 可执行文件:高效部署指南
  • 题解:CF1398D Colored Rectangles
  • 【一】 基本概念与应用领域【数字图像处理】
  • Python基本语法(控制语句)
  • Spring IoC容器的设计与实现
  • ERP系统(技术面)知识积累
  • Transformer架构的解耦重组现象
  • SpringTas定时任务使用详解
  • GPU虚拟化实现(七)
  • MySQL基础关键_003_DQL(二)