DataGuard FailOver
模拟主库实例已经崩溃,但是数据库文件可用,比如数据库文件存放在磁盘阵列上..
1.在一个物理StandBy最大性能的环境下,中断备库的监听器
2.主库切换联机重做日志(模拟主库的日志不能传送到备库的场景)
SQL> alter system archive log current;
System altered.
SQL> /
System altered.
SQL> /
System altered.
SQL> /
System altered.
3.停止主库的实例
SQL> shutdown abort;
ORACLE instance shut down.
4.备库查看GAP,和尚未收到归档文件的信息
查看视图,没有GAP的归档
SQL> select * from v$archive_gap;
no rows selected
查看备库应用归档的信息
备库已经应用到97号归档
select sequence#,name from v$archived_log;

5.登录主库服务器,将尚未传送到备库的归档通过scp传输到备库
一般来说,服务器故障也是有可能得到磁盘上的文件的.
比如
使用了磁盘阵列,通过网络存储数据
仅仅是数据库故障,而主机可以使用
主机不可用,但是可以恢复磁盘上的数据
等等
登录主库所在的服务器
可以看到98,99,100号归档文件还在

查看联机重做日志,通过最后修改时间,找到最后的redolog文件--redo02.log

将这些文件通过SCP传输到备库
[lihuilin@lihuilin orcl]$ scp redo02.log root@mysql1:/tmp
[lihuilin@lihuilin 2014_11_10]$ scp o1_mf_1_{98,99,100}*.arc root@mysql1:/tmp
6.备库注册归档日志,应用redolog文件
备库注册缺失的归档日志文件
alter database register logfile ‘/tmp/o1_mf_1_98_b5z6nyjk_.arc‘;
alter database register logfile ‘/tmp/o1_mf_1_99_b5z6o2nd_.arc‘;
alter database register logfile ‘/tmp/o1_mf_1_100_b5z6o498_.arc‘;
备库中止恢复模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
备库进行恢复
recover standby database until cancel;
看到如下内容,输入redolog文件的位置
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
最后恢复完成
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/tmp/redo02.log
Log applied.
Media recovery complete.
7.激活备库
备库输入命令
alter database activate standby database;
alter database open;
查看备库现在的状态,FailOver已经完成.
SQL> select database_role,open_mode from v$database;
DATABASE_ROLE OPEN_MODE
---------------- --------------------
PRIMARY READ WRITE
DataGuard模拟FailOver实验
原文:http://blog.itpub.net/29254281/viewspace-1326680/