0

0

Oracle Data Guard 的角色转换

php中文网

php中文网

发布时间:2016-06-07 17:30:02

|

1003人浏览过

|

来源于php中文网

原创

实验环境:OEL+Oracle11.2.0.3+physical standby,众所周知,Data Guard已经是现今标准的主流容灾方案,由于日志传递对于网络适应

实验环境:oel+oracle11.2.0.3+physical standby

众所周知,Data Guard已经是现今标准的主流容灾方案,由于日志传递对于网络适应程度强,且可以采用同步实时的传递方式和异步延迟的传递方式,甚至可以成为远程的异地容灾方案。不管用于何种用途,DG都免不了要进行角色转换,即将standby 数据库切换为primary数据库,角色转换分为:switchover和failover两种;两种区别从三个角度来对比:

(1)、使用场合不同:Switchover 用于有准备的、计划之中的切换,通常是系统升级、数据迁移等常态任务;Failover用于意料之外的突发情况,比如异常掉电、自然灾难等等。

(2)、数据丢失程度不同:Switchover不会丢失数据,Failover通常意味着有部分数据丢失。

(3)、善后处理的不同:Switchover之后Dataguard环境不会被破坏,任然有Primary、Standby两种角色的系统存在。但是Failover之后,Dataguard环境就会被破坏,必须需要重建。

一、Switchover

因为Switchover这种转化是有DBA主动、人为触发的,所以Switchover的步骤都是标准化的。Switchover流程是从Primary Database开始,终止于Standby Database。

Switchover步骤如下:

1 在主库端检查数据库可切换状态

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS:TO STANDBY 表示可以正常切换.

如果SWITCHOVER_STATUS 的值为SESSIONS ACTIVE,表示当前有会话处于ACTIVE状态

 

2 开始主库正常切换

如果SWITCHOVER_STATUS 的值为TO STANDBY:

SQL>alter database commit to switchover to physical standby;
Database altered.

如果SWITCHOVER_STATUS 的值为SESSIONS ACTIVE:

SQL>alter database commit to switchover to physical standby with session shutdown;
Database altered.

当 Primary Database 收到这条命令后,会发生这几件事情:

(1)、这条命令执行完毕之后,主库上就不会产生Redo,所有DML相关的Cursor都会失效,用户也将不能再执行事务。

(2)、每个日志线程的当前日志被归档,并在接下来的每个Thread新的日志头记录一个特殊的切换标准EOR(End of Redo),然后再次归档,其结果就是把EOR发送给所有Standby Database,Primary Database 转换成了Standby。

(3)、在这个旧的Primary Database 上,MRP(Managed Recovery Process)进程会自动启动,,并应用最后一个归档日志,也就是EOR这个日志,一旦这个EOR应用完成,数据库就会Dismounted,并必须启动成一个Standby Database。

3 重启先前的主库

SQL> SHUTDOWN IMMEDIATE;(11g有时候要shutdown abort才行,不然报错)

SQL> startup mount;

4 这时候到备份库 在备库验证可切换状态

SQL>select switchover_status from v$database;

SWITCHOVER_STATUS

-----------------

TO_PRIMARY

1 row selected

5 将目标备库转换为主库

如果SWITCHOVER_STATUS 的值为TO STANDBY 则:

SQL> alter database commit to switchover to primary;
Database altered.

如果SWITCHOVER_STATUS 的值为SESSIONS ACTIVE 则:

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

执行完这个命令后,Standby Database 的控制文件也从Standby 控制文件转换成标准的控制文件了,接下来数据库就可以open database,打开成业务数据库了。

6 重启目标备库

SQL> shutdown immediate;

SQL> startup;

7 先前主库启动日志传送进程

SQL> alter database recover managed standby database disconnect;

8 检查主备库角色状态:

select switchover_status,database_role from v$database;

至此,一个完整的Switchover 完成角色互换,可以正常使用了。

linux

相关专题

更多
微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

74

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

133

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

106

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

44

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

11

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.5万人学习

Java 教程
Java 教程

共578课时 | 47.5万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号