Oracle Dataguard之failover
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的更多相关文章
- Oracle dataguard failover 实战
Oracle dataguard failover 实战 操作步骤 备库: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINIS ...
- Oracle Dataguard故障转移(failover)操作
注意:故障转移会破坏DG的主从关系,使其变为互不相关的2个数据库,谨慎使用. (一)故障转移操作流程图 (二)故障转移操作流程 备注:以下操作步骤与上面流程图步骤一一对应 STEP1:刷新所有未发送到 ...
- Oracle DataGuard故障转移(failover)后使用RMAN还原失败的主库
(一)DG故障转移后切换为备库的方法 在DG执行故障转移之后,主库与从库的关系就被破坏了.这个时候如果要恢复主从关系,可以使用下面的3种方法: 将失败的主库重新搭建为备库,该方法比较耗时: 使用数据库 ...
- Oracle Dataguard之switchover
Oracle Dataguard的角色转换包含两类:Switchover和Failover.Switchover指主备之间角色转换,主库降为备库,备库升级为主库.而failover则是指主库出现问题时 ...
- Oracle dataguard 正常切换和应急切换
oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...
- oracle dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- Oracle Dataguard之Real-Time Apply
Oracle Dataguard一共支持三种模式:最大可用模式(Maximum Availability),最大性能模式(Maximum Performance),最大保护模式(Maximum Pro ...
- Oracle Dataguard之物理standby的基本配置
尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...
- Oracle DataGuard 物理Standby 搭建(上)
物理standby database 环境搭建 Arch asysnc Oracle Dataguard host IP Oracle_sid DB_unique_name FAL_server FA ...
随机推荐
- 【转】java调用webservice
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...
- JAVA学习博客---2015-8
八月份的学习博客,今天已经是九月四号了,补上吧.现在我又回到C++了,JAVA的基本的东西都懂了,但是更好的掌握JAVA,我必须原路返回去学习C++,当初为了更快的学JAVA,其实我得C++都是跳着看 ...
- Spring对Quartz的封装实现简单需注意事项
前段时间在项目中一直使用正常的Quartz突然出现了任务漏跑的情况,由于我以前看过Quartz的内部实现,凭借记忆我觉得是由于Quartz的线程池的使用出现问题导致了故障的发生.为了搞清问题的真相,我 ...
- Oracle基本数据字典:v$database、v$instance、v$version、dba_objects
v$database: 视图结构: SQL> desc v$database; Name Null? Type - ...
- Tableau:数据可视化之急速BI
1.我们通过数据可视化,是为了从数据中寻找什么呢?三个方面:模式.关系和异常.不管图形表现的是什么,我们都要留心观察这三者.
- TJ/T808 终端通讯协议设计与实现(码农本色)
由于公司项目涉及到相关技术,对于平常写WEB的技术人员来说对这人来说比较默生:为了让下面的技术人员更好地对这个协议的实施,所以单独针对这个协议进行了分析和设计,以更于后期更好指导相关开发工作.由于自己 ...
- C# 调用restful服务开源库
.NET环境下我们想调用其它开放平台的服务接口,不需要自己去实现底层,开源的库用起来会很方便 hammock http://www.cnblogs.com/shanyou/archive/2012/0 ...
- MySQL2:四种MySQL存储引擎
前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以 ...
- DeviceOne 竟然做出来如此复杂的App
分享来自DeviceOne论坛 此文章分享自DeviceOne的论坛,论坛上的用户分享,下面有二维码扫描,可以进行安装和试用.支持android和ios两个 操作系统. 这个还没做完,目前已经完成了初 ...
- ehcache2拾遗之write和load
问题描述 在cache系统中writeThrough和writeBehind是两个常用的模式. writeThrough是指,当用户更新缓存时,自动将值写入到数据源. writeBehind是指,在用 ...