(一)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;

至此,就将原来的主库切换为了备库。

【完】

相关文档:
1.Oracle DataGuard主备切换(switchover)
2.Oracle Dataguard故障转移(failover)操作
3.Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库的更多相关文章

  1. Oracle Dataguard故障转移(failover)操作

    注意:故障转移会破坏DG的主从关系,使其变为互不相关的2个数据库,谨慎使用. (一)故障转移操作流程图 (二)故障转移操作流程 备注:以下操作步骤与上面流程图步骤一一对应 STEP1:刷新所有未发送到 ...

  2. Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇

    1. dataguard主备切换   1.1. 查看当前主备库是否具备切换条件 on slave select sequence#,first_time,next_time,archived,appl ...

  3. failover swarm 故障转移

    #故障转移 Failover #当其中一个节点关闭宕机时,其节点中的service会转移到另一个节点上.Swarm会检测到node1发生故障并把此故障节点的状态标记为Down; docker node ...

  4. 使用ProxySQL实现MySQL Group Replication的故障转移、读写分离(一)

    导读: 在之前,我们搭建了MySQL组复制集群环境,MySQL组复制集群环境解决了MySQL集群内部的自动故障转移,但是,组复制并没有解决外部业务的故障转移.举个例子,在A.B.C 3台机器上搭建了组 ...

  5. Sink Prosessor - Flume的可靠性保证:故障转移、负载均衡

    Flume的一些组件(如Spooling Directory Source.File Channel)能够保证agent挂掉后不丢失数据. 1.负载均衡 1)Load balancing Sink P ...

  6. CentO7 安装 redis, 主从配置,Sentinel集群故障转移切换

        一.Redis的安装(前提是已经安装了EPEL)   安装redis: yum -y install redis 启动/停止/重启 Redis 启动服务: systemctl start re ...

  7. Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机

    Ruturaj Dhekane 云 + Enterprise 项目经理  现在,AzureSite Recovery可以通过其"灾难恢复至 Azure"功能保护您的工作负荷,并 ...

  8. Oracle Dataguard之failover

    Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...

  9. 利用rman duplicate重建oracle dataguard standby数据库

    问题背景 适用情况: 操作系统: redhat 6.5 数据库: oracle 11g r2 问题描述: failover后原主库无法恢复和启动或者丢失主备关系 优点 不需要对primary数据库停机 ...

随机推荐

  1. apply()方法和call()介绍

    我们发现apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域. 1.call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的 ...

  2. 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...

  3. JS控制滚动条的位置

    转载▼http://blog.sina.com.cn/s/blog_4481a3460100rwwu.html     JS控制滚动条的位置:window.scrollTo(x,y); 竖向滚动条置顶 ...

  4. paramiko报错 Garbage packet received

    前情概要 今天想要写一个多进程的python脚本上传代码至服务器,于是在本地用虚拟机测试了一下,可总是报错,具体报错信息如下 Traceback (most recent call last): Fi ...

  5. JavaScript动画实例:递归分形图动态展示

    在“JavaScript图形实例:SierPinski三角形” 和“JavaScript图形实例:Levy曲线及其变形”等文章中我们介绍了通过递归生成分形图形的方法.我们可以将绘制的分形图形每隔一定的 ...

  6. 每日一题 - 剑指 Offer 47. 礼物的最大价值

    题目信息 时间: 2019-07-02 题目链接:Leetcode tag:动态规划 难易程度:中等 题目描述: 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0). ...

  7. 网页开发中利用CSS以图换字的多中实现方法总汇

    在h1标签中,新增span标签来保存标题内容,然后将其样式设置为display:none <style> h1 { width: 64px; height: 64px; backgroun ...

  8. Navicat远程连接MySQL 提示1045 - Access denied for user 'root'@'223.74.158.192'(using password:YES)

    问题: 今天在自己的阿里云服务器上(Window Server2012 R2)安装了一个MySQL5.7.26,在阿里云服务器中通过本地链接是正常的,但是当在自己的电脑上使用Navicat连接是提示: ...

  9. mysql--数据插入覆盖和时间戳的问题

    1.数据插入问题 当我们insert数据时,插入datetime类型,此类型的字段,存储数据格式为:  YYYY-MM-DD,它支持的范围为'1000-01-01'到'9999-12-31',并且允许 ...

  10. redis 集群方案及搭建

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...