当前位置:数据库 > Oracle >>

Oracle Data Guard (四) Failover

Oracle Data Guard (四) Failover
 
1.检查Standby数据库上有遗漏掉Log
用下列命令检查是否有漏掉的log:
 
SQL> select thread#,log_sequence#,high_sequence# from v$archive_gap;
 
把漏掉的log文件从primary 数据库拷贝到standby数据库指定的log目录,用以下命令注册进standby数据库:
 
SQL> alter database register physical logfile ‘filespec1’;
 
2.在Standby数据库上停止log 应用进程
SQL> alter database recover managed standby database cancel;
 
SQL> alter database recover managed standby database finish;
 
如果应用所有redo log时遇到错误,可以用以下命令执行failover:
SQL> alter database activate physical standby database;
 
3.检查Standby数据库的状态
SQL> select switchover_status from v$database;
 
只有状态为 "TO PRIMARY" 或者 "SESSIONS ACTIVE" 才能对Standby数据库进行角色切换。
 
4.切换Standby数据库为Primary角色
SQL> alter database commit to switchover to primary with session shutdown;
 
SQL> alter database open;
 
5.修复Primary数据库
得到新Primary 角色的standby数据库的SCN:
 
SQL> select to_char(standby_became_primary_scn) from v$database;
 
还原Primary数据库到上面得到的SCN:
RMAN> RUN
{
Set until scn <standby_became_primary_scn+1>;
Restore database;
Recover database;
}
 
切换primary数据库为physical standby角色:
 
SQL> alter database covert to physical standby;
 
SQL> shutdown immediate;
SQL> startup mount;
 
打开为只读方式同步log file,然后再重启动:
 
SQL> alter database open read only;
 
SQL> shutdown immediate;
SQL> startup mount;
 
在primary数据库上启用log应用进程:
SQL> alter database recover managed standby database using current logfile disconnect;
 
另外可以从当前Primary角色的standby数据库的备份去重建primary数据库,或者重复standby执行过程,通过RMAN脚本重建primary数据库。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,