关于Oracle Data Guard的角色切换

php中文网
发布: 2016-06-07 17:28:00
原创
1268人浏览过

Oracle数据库通过其 Data Guard技术通过网络将数据实时异地的Oracle数据库中,实现其数据的异地安全机制。在异地建立一样的环境,

1.概述
 
oracle数据库通过其 data guard技术通过网络将数据实时异地的oracle数据库中,实现其数据的异地安全机制。
 
它的实现过程是一般是这样:
 
首先,在异地建立一样的环境,包括主机操作系统,数据库版本和数据文件存储方式,先模拟建个库,,后在此库基础上创建physical standby。
 
其次,在主库和备库节点上修改一下init.ora,listener.ora和tnsnames.ora文件配置,及主库的v$database的protection_mode修改为maximumavailability(最大可用)。
 
再次,在主库上备份一下控制文件,当然是for standby方式。
 
最后,在备库上创建一下standby logfile,启动到recover managed standbydatabase 状态;并在主库上将指向该备库的log_archive_dest_state_*做一下defer和enable,即激活一下。
 
这样,整个过程就此完成。
 
好吧,这不是重点。
 
重点是,在dataguard环境搭建完成后备库能切换吗?如何切换呢?
 
2.主备库相互切换
 
其实,oracledata guard的切换有两种,其专业术语称为switchover和failover。
 
正常切换switchover的操作步骤简单明了,如下:
 
第一步,关掉主库上的监听,再将主库上的所有连接也关掉。可以直接kill -9 local=no的oracle进程,我就是这么干的。
 
第二步,在主库上将数据库角色设置为physical standby,切换状态设置为to primary。
 
操作的sql为:alter database commit to switchover to physical standby;
 
结果检查:
 
sql>select database_role,switchover_status from v$database;
 
 
 
database_role    switchover_status
 
------------------------------------
 
physicalstandby to primary
 
主库已经变成一个standby库了。但该库的切换状态设置是to primary,如果你这个时候反悔,就可以再切换回去。
 
切换操作完成后,数据库实例需要重启,init.ora文件需要更换,实例设置为实时恢复状态。
 
操作的sql为:
 
startupnomount force;
 
alterdatabase mount standby database;
 
alterdatabase recover managed standby database using current logfile disconnect fromsession;
 
第三步,在备库上将数据库角色设置为primary。
 
操作的sql为:alter database commit to switchover to primary;
 
结果检查:
 
先检查数据库角色和切换状态,决定备库能不能切换。
 
sql>select database_role,switchover_status from v$database;
 
 
 
database_role    switchover_status
 
------------------------------------
 
physicalstandby to primary
 
 
 
sql>alter database commit to switchover to primary;
 
databasealtered.
 
切换操作完成后,数据库实例需要重启,init.ora文件需要更换。
 
sql>conn / as sysdba
 
connected.
 
sql>startup open force;
 
oracleinstance started.
 
databasemounted.
 
databaseopened.
 
sql>select database_role,switchover_status from v$database;
 
database_role    switchover_status
 
------------------------------------
 
primary          to standby
 
 
 
通过这三步,切换操作就完成了。这个切换操作可以用来做数据迁移。比以前使用rman的backup/restore简单多了。更重要的是,它还可以再切换回去。
 
这三步操作,看上去很简单,但是涉及到了主库角色转换的问题。如果在主库的角色转换后,备库因某些原因如硬件不能转换为主库了,又该怎么办?
 
没有了主库,对于任何应用系统都是灾难啊。
 
好吧,我承认,这才是我想说的重点。

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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