| « | 十月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
如果主库出现故障无法修复的话,就需要在备库上做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错误。
最后不要忘了修改数据库参数。