介绍一下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的机制了。
最后启动实例2进行检查:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1.7108E+10 bytes
Fixed Size 2101632 bytes
Variable Size 3478638208 bytes
Database Buffers 1.3623E+10 bytes
Redo Buffers 4431872 bytes
数据库装载完毕。
数据库已经打开。
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
rac11g2 OPEN
rac11g1 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
由于不需要考虑主库的状态,FAILOVER的切换相对比较简单。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-611091/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-611091/