原理:
Nologging 操作指的是不会将诸如插入/更新/删除之类的DML操作记录到重做日志文件中的操作。当未在主库启用 Force logging 的情况下,备库的 MRP 如果碰到 nologging 的操作,会把相关的 block 标记为已损坏。而当这样的块被访问的时候,则会报 Ora-1578/ORA-26040 错误。
因此再次强调
Force logging的重要性,赶紧查查自己的dg中主库是否开启了
解决 12.2 中备库 No logging 操作的步骤
-
1、确认受影响的数据块
-
在备库执行
-
SELECT * FROM V$NONLOGGED_BLOCK ;
-
-
2、在备库停掉恢复的动作
-
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
-
-
3、使用Rman连接至备库来恢复 nologged blocks
-
RMAN>RECOVER DATABASE NONLOGGED BLOCK;
-
-
4、再次执行下面的命令来确认受影响的数据块已都被恢复
-
Select * V$NONLOGGED_BLOCK ;
-
阅读(763) | 评论(0) | 转发(0) |