一步一脚印

欢迎来到一步一脚印>>   | 首页 资源中心 | BUG | 心情驿站 | Linux/Unix技术 | Oracle技术 | ITPUB论坛

DATAGUARD失败切换

发表人:space6212 | 发表时间: 2007年八月13日, 23:49

如果主库出现故障无法修复的话,就需要在备库上做failover,使得应用可以继续运行。


在备库做失败切换的一般步骤是:
1、如果可能,从主库手工拷贝并注册ARCHIVED LOG到备库上,直到备库的V$ARCHIVE_GAP记录为空。
2、重启备库
3、在备库应用所有日志(用finish关键字)
4、把备库设置为最大性能模式
5、失败切换
6、修改备库的相关参数(主要是其作为STANDBY_ROLE的相关参数)

在时间充裕的情况下可以这样做,如果时间紧迫,可以直接用下面的脚本实现FAILOVER。

[oracle@standby ~]$ more failover.sh
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=primary
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG="american_america.ZHS16GBK"

lsnrctl stop
$ORACLE_HOME/bin/sqlplus /nolog <<EOF
connect / as sysdba
alter database recover managed standby database cancel;
shutdown immediate
startup mount
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
alter database recover managed standby database finish;
-- switch
alter database commit to switchover to primary with session shutdown;
-- open
shutdown immediate
startup
exit
EOF
lsnrctl start

脚本先重启一次数据库是为了防止ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected错误。

最后不要忘了修改数据库参数。

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)




Valid XHTML 1.0 Strict and CSS. Powered by pLog
Design by Blog.lvwo.com