当前位置: 首页 > 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

http://www.mrgr.cn/news/100888.html

相关文章:

  • Pinia: vue3状态管理
  • (33)VTK C++开发示例 ---图片转3D
  • winget安装+使用
  • LeetCode —— 572. 另一棵树的子树
  • 在QGraphicsView中精确地以鼠标为锚缩放图片
  • 无缝监控:利用 AWS X-Ray 增强 S3 跨账户复制的可见性
  • 驱动开发系列55 - Linux Graphics QXL显卡驱动代码分析(二)显存管理
  • Being-0——集操作、导航、运动为一体的机器人Agent框架:GPT4o高层感知并推理规划、低层VLM导航适配,最终执行技能库
  • 【AI面试准备】模型自动化评估
  • mysql-窗口函数一
  • 数据升降级:医疗数据的“时空穿梭“系统工程(分析与架构篇)
  • 极简GIT使用
  • 【大模型实战篇】华为信创环境采用vllm部署QwQ-32B模型
  • pandas读取Excel数据(.xlsx和.xls)到treeview
  • 【AI面试准备】语言模型、语音、多模态等模型能力评估指标和能力边界
  • 从0开始的c++知识讲解之字符串(1)
  • 使用MGeo模型高精度实现文本中地址识别
  • LeetCode —— 94. 二叉树的中序遍历
  • 洛谷题目:P10480 可达性统计 题解(本题简)
  • PostgreSQL:pgAdmin 4 使用教程