RAC环境STANDBY的FAILOVER切换
介绍一下RAC环境下STANDBY数据库的FAILOVER切换。
PRIMARY数据库和STANDBY数据库采用的都是RAC 11.1.0.6 for Solaris10 sparc,共享存储PRIMARY数据库采用VOLUMN CLUSTER MANAGER,而STANDBY数 据库使用ASM。
STANDBY数据库环境已经建立完成,下面 准备实施FAILOVER切换。
FAILOVER切换一般是PRIMARY数据库发生故障后的切换,这种情况是STANDBY数 据库发挥其作用的情况。这种切换发生后,可能会造成数据的丢失。而且这个过程不是可逆的,DATA GUARD环 境会被破坏。
由于PRIMARY数据库已经无法启动,所以FAILOVER切 换所需的条件并不多,只要检查STANDBY是否运行在最大保护模式下,如果是的话,需要将其置为 最大性能模式,否则切换到PRIMARY角色也无法启动。
为了模拟FAILOVER的特点主库的两个实例都通过SHUTDOWN ABORT方式关闭。
SQL>
shutdown abort
ORACLE 例程已经关闭。
另外一个实例也关闭:
SQL>
shutdown abort
ORACLE 例程已经关闭。
下面登陆STANDBY数据库,检查是否有ARCHIVE GAP存 在:
SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;
未选定行
如果GAP存在,应该到主服务器上尽可能寻找到,这样切换的时候可以少丢失数据。
确认实例2已经关闭,将实例1需求日志恢复操作:
SQL> alter database recover managed standby database cancel;
数据库已更改。
SQL> alter database recover managed standby database finish;
数据库已更改。
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
下面就可以指向切换了:
SQL> alter database commit to switchover to primary;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL>
select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;
NAME
OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- --------------------
-------------------------
RAC11G READ WRITE PRIMARY NONE rac11g_s rac11g
至此切换已经完成,两个 数据库的STANDBY关系已经失去,即使源数据库重新启动,两个数据库也不能恢复STANDBY
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/90618/viewspace-668191/ ,如需转载,请注明出处,否则将追究法律责任。