Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库
(一)DG故障转移后切换为备库的方法
在DG执行故障转移之后,主库与从库的关系就被破坏了。这个时候如果要恢复主从关系,可以使用下面的3种方法:
- 将失败的主库重新搭建为备库,该方法比较耗时;
- 使用数据库闪回方法,将失败的主数据库转换为备库,该方法依赖于闪回数据库功能,在生产环境,并未启用该功能;
- 使用RMAN备份将失败的主库转换为备库,该方法要求在失败之前主库要有RMAN备份。
这里仅对第3种方法进行说明。
(二)使用RMAN备份还原失败的主库为备库
STEP1:确认旧的备库成为主库时的SCN
在新的主数据库上,使用以下SQL语句查询旧备用数据库在转换为新的主库时的SCN
- SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;
STEP2:修复和恢复整个数据库
通过使用STANDBY_BECAME_PRIMARY_SCN之前的备份来修复数据库,然后执行基于时间点的恢复。
使用以下RMAN命令:
- RMAN> RUN
- {
- SET UNTIL SCN <standby_became_primary_scn + 1>;
- RESTORE DATABASE;
- RECOVER DATABASE;
- }
STEP3:转换数据库为物理备库
在旧的主数据库上执行下面的步骤:
(1)将控制文件转换为备用控制文件
- SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
(2)关闭数据库,将数据库启动到mount状态
- SQL> SHUTDOWN IMMEDIATE;
- SQL> STARTUP MOUNT;
STEP4:以只读方式打开数据库
- SQL> ALTER DATABASE OPEN READ ONLY;
该步骤的目的是使用数据字典检查使控制文件与数据库同步,执行此命令之后,检查数据库告警日志文件中建议的操作。通常,如果在故障转移期间旧的主库没有添加、删除过数据文件,用户是不需要采取任何动作的。
STEP5:重新开始将重做日志传输到新的备库
在新的备库创建之前,新的主库可能已经停止将重做日志传输到远程地址,如果要启动重新传输服务,在主数据库上执行下面的命令。
(1)查询当前归档日志存放地址
- SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;
(2)如有必要,启用归档目的地址
- SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_n=ENABLE;
(3)执行日志切换命令,确保备用数据库已经开始从新的主数据库接收日志
- SQL> ALTER SYSTEM SWITCH LOGFILE;
- SQL> SELECT DEST_ID, DEST_NAME, STATUS, PROTECTION_MODE, DESTINATION, ERROR,SRL FROM V$ARCHIVE_DEST_STATUS;
在新的备库上,可能需要修改LOG_ARCHIVE_DEST_n参数(尤其一主多备的环境),以确保它不会将重做数据传输到其它数据库上。
STEP6:开启redo应用
使用如下命令开启redo日志应用
- SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
至此,就将原来的主库切换为了备库。
【完】
相关文档: |
Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库的更多相关文章
- Oracle Dataguard故障转移(failover)操作
注意:故障转移会破坏DG的主从关系,使其变为互不相关的2个数据库,谨慎使用. (一)故障转移操作流程图 (二)故障转移操作流程 备注:以下操作步骤与上面流程图步骤一一对应 STEP1:刷新所有未发送到 ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇
1. dataguard主备切换 1.1. 查看当前主备库是否具备切换条件 on slave select sequence#,first_time,next_time,archived,appl ...
- failover swarm 故障转移
#故障转移 Failover #当其中一个节点关闭宕机时,其节点中的service会转移到另一个节点上.Swarm会检测到node1发生故障并把此故障节点的状态标记为Down; docker node ...
- 使用ProxySQL实现MySQL Group Replication的故障转移、读写分离(一)
导读: 在之前,我们搭建了MySQL组复制集群环境,MySQL组复制集群环境解决了MySQL集群内部的自动故障转移,但是,组复制并没有解决外部业务的故障转移.举个例子,在A.B.C 3台机器上搭建了组 ...
- Sink Prosessor - Flume的可靠性保证:故障转移、负载均衡
Flume的一些组件(如Spooling Directory Source.File Channel)能够保证agent挂掉后不丢失数据. 1.负载均衡 1)Load balancing Sink P ...
- CentO7 安装 redis, 主从配置,Sentinel集群故障转移切换
一.Redis的安装(前提是已经安装了EPEL) 安装redis: yum -y install redis 启动/停止/重启 Redis 启动服务: systemctl start re ...
- Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
Ruturaj Dhekane 云 + Enterprise 项目经理 现在,AzureSite Recovery可以通过其"灾难恢复至 Azure"功能保护您的工作负荷,并 ...
- Oracle Dataguard之failover
Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...
- 利用rman duplicate重建oracle dataguard standby数据库
问题背景 适用情况: 操作系统: redhat 6.5 数据库: oracle 11g r2 问题描述: failover后原主库无法恢复和启动或者丢失主备关系 优点 不需要对primary数据库停机 ...
随机推荐
- Layer 3.0
https://jeesite.gitee.io/front/layer/3.0/layer.layui.com/index.html
- Linux中的block容量
block容量的大小直接关系到文件系统存储使用是否合理的问题: 因为每个block只能供一个文件使用,所以如果Linux系统的block容量太大,但系统经常存储的都是小文件那么会很浪费系统磁盘: 但如 ...
- 'printf' Function
printf is not part of the C language; there is no input or output defined in C itself. printf is jus ...
- Spring拦截器和SpringAop实现
一.拦截器 1.aop是面向切面编程,原理是java的发射技术. 2.分为三类,before.after.arround 3.springMvc为我们提供了一个适配器HandlerIntercepto ...
- HTML5(七)Web 存储
HTML5 Web 存储 HTML5 web 存储,一个比cookie更好的本地存储方式. 什么是 HTML5 Web 存储? 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是 ...
- Code Forces 796C Bank Hacking(贪心)
Code Forces 796C Bank Hacking 题目大意 给一棵树,有\(n\)个点,\(n-1\)条边,现在让你决策出一个点作为起点,去掉这个点,然后这个点连接的所有点权值+=1,然后再 ...
- 解决idea中“系统找不到指定路径”的问题
有时在其他工具中运行正确的项目,在idea中运行会报路径找不到的错误. 该路径是相对路径的情况下,很有可能是因为idea中的工作空间没有选择正确而导致的.设置工作空间: 该目录没有配置到你运行的模块, ...
- flask 源码专题(二):请求上下文与全文上下文
源码解析 0. 请求入口 if __name__ == '__main__': app.run() def run(self, host=None, port=None, debug=None, lo ...
- java 面向对象(二十四):interface:接口
interface:接口1.使用说明: 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能 ...
- Python网络编程04 /recv工作原理、展示收发问题、粘包现象
Python网络编程04 /recv工作原理.展示收发问题.粘包现象 目录 Python网络编程04 /recv工作原理.展示收发问题.粘包现象 1. recv工作原理 2. 展示收发问题示例 发多次 ...