Oracle Dataguard中,角色转换包含两类:Switchover和Failover。上文《Oracle Dataguard之switchover》中,我们已经谈过了switchover,本文将谈谈failover以及如何将failed primary database转换为physical standby database。

failover

一、 主库挂掉 

在这里我们杀掉lgwr进程模拟实例崩溃。

[oracle@node2 ~]$ ps -ef | grep lgwr   -->> 注意:在这个案例中,node2是主库

oracle 1375 1 0 14:07 ? 00:00:21 ora_lgwr_victor
       oracle 1668 1654 0 16:08 pts/0 00:00:00 grep lgwr

[oracle@node2 ~]$ kill -9 1375   -->> 杀掉lgwr进程,实例崩溃,无法访问

二、 备库上停止Redo Apply   -->> node1 为备库

SQL> alter database recover managed standby database cancel;

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS DATABASE_ROLE
       -------------------- ----------------
       NOT ALLOWED PHYSICAL STANDBY

三、 备库上finish applying all received redo data  -->> node1 为备库

SQL> alter database recover managed standby database finish;

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS DATABASE_ROLE
       -------------------- ----------------
       TO PRIMARY PHYSICAL STANDBY

-->> 注意:在执行完上个命令后,switchover_status从not allowed变为to primary了,即可以切换为主库了。

四、 备库开始switchover

SQL> alter database commit to switchover to primary with session shutdown;

SQL> alter database open;

SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS DATABASE_ROLE
       -------------------- ----------------
       RESOLVABLE GAP PRIMARY

此时,备库角色已经成功切换为Primary了,failover成功。

在failover之后,如果原主库故障解决,可以重新上线,我们可以看到,在startup以后,它的角色仍然是Primary,很显然,一个dataguard配置中,是不可能有两个主库    的。这时,我们可以将这个原主库转换为新主库的备库。主要有三种方法:一、按照先前的方法,利用新主库的备份,将这个原主库重新配置为备库。二、利用flashback。  三、利用rman备份。

在这里,我们主要谈谈第二种和第三种方法。

Flashing Back a Failed Primary Database into a Physical Standby Database

一、 查询原备库转换成主库时的SCN   -->> node1 上操作

SQL> select to_char(standby_became_primary_scn) from v$database;

TO_CHAR(STANDBY_BECAME_PRIMARY_SCN)
      ----------------------------------------
      901719

二、 Flash back原主库  -->> 即node2

SQL> shutdown immediate

SQL> startup mount

SQL> flashback database to scn 901719;

-->> 注意,前提是flashback_on的特性必须开启,alter database flashback on;

三、 将原主库转换为备库  -->> node2 上操作

SQL> alter database convert to physical standby;

SQL> shutdown immediate

SQL> startup

四、 现备库上启用Redo Apply  -->> node2 上操作

SQL> alter database recover managed standby database using current logfile disconnect from session;

基本OK!

Converting a Failed Primary into a Standby Database Using RMAN Backups

一、 查询原备库转换成主库时的SCN

SQL> select to_char(standby_became_primary_scn) from v$database;

二、 恢复原主库

RMAN > run

{ set until scn <standby_became_primary_scn+1>;

restore database;

recover database;

}

三、 将原主库转换为备库

SQL> alter database convert to physical standby;

SQL> shutdown immediate

SQL> startup mount

SQL> alter database open read only;

四、 现备库上启用Redo Apply

SQL> alter database recover managed standby database using current logfile disconnect from session;

基本OK!

Oracle Dataguard之failover的更多相关文章

  1. Oracle dataguard failover 实战

    Oracle dataguard  failover 实战 操作步骤 备库: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINIS ...

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

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

  3. Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库

    (一)DG故障转移后切换为备库的方法 在DG执行故障转移之后,主库与从库的关系就被破坏了.这个时候如果要恢复主从关系,可以使用下面的3种方法: 将失败的主库重新搭建为备库,该方法比较耗时: 使用数据库 ...

  4. Oracle Dataguard之switchover

    Oracle Dataguard的角色转换包含两类:Switchover和Failover.Switchover指主备之间角色转换,主库降为备库,备库升级为主库.而failover则是指主库出现问题时 ...

  5. Oracle dataguard 正常切换和应急切换

    oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...

  6. oracle dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

  7. Oracle Dataguard之Real-Time Apply

    Oracle Dataguard一共支持三种模式:最大可用模式(Maximum Availability),最大性能模式(Maximum Performance),最大保护模式(Maximum Pro ...

  8. Oracle Dataguard之物理standby的基本配置

    尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...

  9. Oracle DataGuard 物理Standby 搭建(上)

    物理standby database 环境搭建 Arch asysnc Oracle Dataguard host IP Oracle_sid DB_unique_name FAL_server FA ...

随机推荐

  1. SAP HANA企业级培训系列课程<第一部分>

    No. 课程 备注 1 HANA概述 HANA 特点 2 HANA Server & Studio & Client 认识HANA Server \Client\ Studio, 熟悉 ...

  2. java-代理模式及动态代理

    代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在考虑到性能或安全等因素的情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. ...

  3. React Native移动框架功能研究

    React Native移动框架功能研究 此篇只研究React Native框架的功能. 一.React Natvie是什么 React Native是使用React(或者说JS)来开发原生APP的框 ...

  4. 如何自行处理写好的eclipse插件安装不生效

    本帖最后由 anrainie 于 2013-7-23 11:31 编辑 对于eclipse插件开发的新手,经常会遇到插件写好了,拷贝到plugins或dropins文件下,但是没有生效.上网各种问,也 ...

  5. dex分包变形记

    腾讯Bugly特约作者:李金涛 一.背景 就在项目灰度测试前不久,爆出了在 Android 3.0以下手机上安装时出现 INSTALL _ FAILED_DEXOPT,导致安装失败.这一问题意味着项目 ...

  6. Java设计模式5:原型模式

    原型模式 原型模式属于对象的创建模式,通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的用意. 原型模式结构 原型模式要求对象实现一个 ...

  7. Javascript事件模型系列(一)事件及事件的三种模型

    一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加 ...

  8. ASP.NET MVC随想录——创建自定义的Middleware中间件

    经过前2篇文章的介绍,相信大家已经对OWIN和Katana有了基本的了解,那么这篇文章我将继续OWIN和Katana之旅——创建自定义的Middleware中间件. 何为Middleware中间件 M ...

  9. 使用ruby过程中遇到安装gem失败的一些通用解决方案

    ruby语言升级还是比较勤快的.但是数量众多的版本使得程序库的兼容性成了大问题.有些gem表示明确不支持某个特定版本以前的ruby,而有些gem则与较高的版本不兼容.再加上gem本身也有版本,简直是乱 ...

  10. SQL-geography && Spatial result

    说起geography(地理)这个类型,我感觉好陌生,以前真的没有见过,今天在查询某个Address表的时候,却发现了新大陆——Spatial result(空间的结果). (1)表的结构 (2)查询 ...