DG物理standby,Failover之后原primary重回DG

本文介绍在Oracle数据库中,当原主库变为物理备库后如何通过特定步骤使其恢复到正常状态的过程。包括查询SCN、Flashback数据库、转换为主备库状态等关键步骤。

DG物理standbyFailover之后原primary重回DG

       如果failover之前,主备都开了flashback,当原主库恢复正常后,则可通过以下步骤重回DG

步骤1.在新主库上查询failover时的SCN

SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;

 

步骤2.在原主库上flashback failover时的scn

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> FLASHBACK DATABASE TO SCN standby_became_primary_scn;

 

步骤3.转换原主库到备库状态

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

 

步骤4.同步、应用日志

 原主库:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

 

在原主库上flashback failover时的scn时报错的处理:

由于原主库没有开flashback,以至于flashback失败,然后通过recover database

SQL> select checkpoint_change# from v$database;

 

CHECKPOINT_CHANGE#

------------------

          20359173

 

SQL> flashback database to scn 20359173;

flashback database to scn 20359173

*

ERROR at line 1:

ORA-38729: Not enough flashback database log data to do FLASHBACK.

查询一下能闪回的最早scn

SQL> select oldest_flashback_scn,

     to_char(oldest_flashback_time,'YYYY-MM-DD HH24:MI:SS')

    from v$flashback_database_log;

OLDEST_FLASHBACK_SCN TO_CHAR(OLDEST_FLAS

-------------------- -------------------

            20382748 2014-03-05 15:24:16

 

这个明显是flashback开的太迟,没有足够的日志;为了能使数据库回到scn20359173的点上,做一次不完全恢复;

Rman>run{

Startup force mount;

Set until scn=20359173; # SET UNTIL SCN ;

Restore database;

Recover database;

}

执行过程中仍然报错ORA-38729,查询了CHECKPOINT_CHANGE#仍是20382748,以为没有成功,然后又做了一次不完全恢复:

RMAN>shutdown immediate

RMAN>startup mount

RMAN>restore database until scn 20359173;

RMAN>recover database until scn 20359173;

查询了CHECKPOINT_CHANGE#仍是20382748,于是再一次做不完全恢复:

SQL>recover database until change 20359173;

Media recovery complete.

很快就完成了恢复;此时,尝试如下操作:

SQL> select switchover_status from v$database;

 

SWITCHOVER_STATUS

--------------------

NOT ALLOWED

 

SQL> alter database open read only;

alter database open read only

*

ERROR at line 1:

ORA-16005: database requires recovery

 

最后直接执行主库转备库操作,顺利完成;

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

 

Database altered.

查询日志,新主库已经开始传日志文件,日志文件传完后启动备库的日志用也可以顺利进行,一直到实时同步;

 

通过以上的操作,可以推测不完全恢复应该是成功的推到了指定SCN处,只是查询SCN地方不对;现在猜测应该查询v$databasecurrent_scn字段,有待日后考证;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-1266131/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16976507/viewspace-1266131/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值