ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【DataGuard】物理Data Guard之Failover转换

【DataGuard】物理Data Guard之Failover转换

原创 Linux操作系统 作者:secooler 时间:2011-06-19 23:12:46 0 删除 编辑
  如果可能的话(即主库暂时还能够访问,还没有从这个世界上消失),在执行Failover操作之前,我们应该将主库中可用并且没有应用的的日志文件传到备库。

  如果备库运行在最大保护或者最大可用的数据保护模式下,应该先将数据保护级别调整为最大性能。方法如下

SQL> alter database set standby database to maximize performance;

Failover步骤如下。

1.查看备库的归档文件是否连续
查询待转换备库的V$ARCHIVE_GAP视图,确认归档文件是否连接:
sys@secdg> select thread#, low_sequence#, high_sequence# from v$archive_gap;

no rows selected

这里如果有记录返回,如果有可能的话,需要将列出的文件手工拷贝到备库。当主库所在服务器出现严重问题,比如经历了人类无法抗拒的力量攻击,被摧毁。那么这步只好作罢。我们这里只能尽力而为。

对拷贝过来的文件使用如下方法进行注册。
sys@secdg> alter database register physical logfile 'filespec1';

2.反复执行第一步中提到的操作内容,直到返回记录为空

3.查看归档文件是否完整
在主备库中分别执行如下语句。
sys@secdg> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

同样的策略,如果有可能的话,将确实的归档日志拷贝到备库。

对拷贝过来的文件使用如下方法进行注册。
sys@secdg> alter database register physical logfile 'filespec1';

4.在需要Failover的备库上准备转换
sys@secdg> alter database recover managed standby database finish force;

Database altered.

“FORCE”关键字将会停止备库中活动的RFS进程,从而可以立即执行Failover转换,不必等待网络连接超时。

5.将物理Data Guard备库Failover转换为主库
sys@secdg> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

sys@secdg> alter database commit to switchover to primary;

Database altered.

sys@secdg> select database_role from v$database;

DATABASE_ROLE
----------------
PRIMARY

6.完成备库到主库的转换工作
1)如果此时数据库状态为MOUNTED状态,直接可以将数据库open
sys@secdg> select open_mode from v$database;

OPEN_MODE
----------
MOUNTED

sys@secdg> alter database open;

Database altered.

sys@secdg> select open_mode from v$database;

OPEN_MODE
----------
READ WRITE

2)如果数据库状态为READ ONLY状态,需要停启一下数据库
sys@secdg> shutdown immediate;
sys@secdg> startup;

7.备份Failover转换过来的主库
此时主库是被Failover过来的,也就是说是一个起死回生过来的新库,理所当然的需要对其进行备份。
备份手段不限,只要是有效的备份即可。防止出现问题的时候可以进行恢复。

8.恢复失败的主库
此时备库已经通过Failover方式转换为主库,原主库已经彻底脱离了我们Data Guard环境。该如何处置原主库呢?
这里给出几种思路:
1)另作他用;
2)将其作为现在主库的备库;
3)将其作为现在主库的备库,同时做一次Switchover恢复其主库的身份。

9.Oracle官方文档参考链接
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/role_management.htm#i1026491

10.小结
  Failover是主库出现严重故障不得以而为之的动作。需要酌情考虑使用。

Good luck.

secooler
11.06.19

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-700417/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    8197934