(一)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. 08 . Kubernetes之 ingress及Ingress Controller

    Ingress简介 ingress是什么? 上篇文章介绍service时有说了暴露了service的三种方式ClusterIP.NodePort与LoadBalance,这几种方式都是在service ...

  2. ansible 2.7 API

    # coding:utf-8 # @Time : 2019-01-14 15:22 # @Author : 小贰 # @FileName: ansible_sync_hosts.py # @funct ...

  3. Linux进程监控命令

    最近使用centos在建站,没有用市面上的什么服务商的服务器,自己用树莓派3B+建了这个博客.但是发现经常宕机,所以想看看服务器在干什么,百度了很久,发现vmstat命令不错,拿出来推荐推荐. 这是我 ...

  4. Google 出品的 Java 编码规范,强烈推荐,既权威又科学

    这份文档是 Google Java 编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格.原文:google.github.io/st ...

  5. python入门006

    一:可变与不可变类型 可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的 不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的 2.验证 2.1 ...

  6. input函数报错"*** is not defined"

    #键盘输入输出name = input('input your name: ') print("姓名:"+name) 运行结果: 只需要在输入时加引号,如"yu" ...

  7. Jmeter系列(41)- Jmeter + Ant +Jenkins 持续集成

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Window 环境准备 安装 ant: ...

  8. 07 Vue常见插件

    项目功能插件 1.vue-router { path: '/', name: 'home', // 路由的重定向 redirect: '/home' } { // 一级路由, 在根组件中被渲染, 替换 ...

  9. 卸载wsl子系统

    1>在powershell中输入下面的代码 wslconfig /l #显示出你安装的列表. wslconfig /u debian #debian为上述列表中的名字 注销子系统 2>打开 ...

  10. MYSQL 之 JDBC(六): 增删改查(四)利用反射及JDBC元数据编写通用的查询

    1.先利用SQL进行查询,得到结果集2.利用反射创建实体类的对象:创建Student对象3.获取结果集的列的别名:idCard.studentName4.再获取结果集的每一列的值,结合3得到一个Map ...