|
问题:关于在建立DG时没有把standby redo复制到备库,导致无法切换到最大可用模式
在做DG的时候,主库建立了STANDBY REDO,却只把数据文件复制到了备库,STANDBY REDO却没有复制过去,当主库从最大性能模式转换成最大可用模式时,查询数据字典如下:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION
SQL>
正常情况下,这个状态表示主库没有和备库进行数据同步,一般是网络中断的原因导致的,今天的情况特殊,因为备库没有standby redo文件,所以主库产生的事务无法实时传输到备库,从而导致了RESYNCHRONIZATION状态,但是归档日志却可以正常地从主库传输到备库,现在最大可用模式实现不了,怎么办?
解决方法:
此时主库没有成功转换成最大可用模式,备库没有standby redo 日志文件。在备库上建立standby redo?不行,因为备库处于mount状态,不能创建standby redo,怎么办?可以先把备库切换成主库,然后再添加standby redo 文件,这样应该可以,在主库执行如下操作:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN
*
ERROR at line 1:
ORA-16416: Switchover target is not synchronized with the primary
由于刚才没有成功从最大性能模式转换成最大可用模式,所以在这里从主库切换到备库的时候会报此错误,怎么办?
步骤:
1、 将主备库重新从转换到最大性能模式;
2、 将没有standby redo文件的数据库切换成主库;
3、 在没有standby redo的主库上建立standby redo文件;
4、 将最大性能模式转换成最大可用模式;
5、 主备库间的切换等。
这个问题难就难在网上没有找到相关的答案,是自己琢磨出来的,我感觉这个问题还是比较重要的,大家可以试一下,或许你遇到过,或许你没有遇到过。 |
|