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的机制了。

最后启动实例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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值