DATA GUARD出现ORA-26040错误

客户在搭建好的DATA GUARD环境出现了ORA-26040错误。
在备库只读打开时,出现了下面的错误:

ORA-12801: error signaled IN parallel query server P000
ORA-01578: ORACLE DATA block corrupted (file # 75, block # 1046445)
ORA-01110: DATA file 75: '/oradata2/accdb/a_txn_data09.dbf'
ORA-26040: DATA block was loaded USING the NOLOGGING OPTION
ORA-12801: error signaled IN parallel query server P000
ORA-01578: ORACLE DATA block corrupted (file # 75, block # 1046445)
ORA-01110: DATA file 75: '/oradata2/accdb/a_txn_data09.dbf'
ORA-26040: DATA block was loaded USING the NOLOGGING OPTION

这个错误其实很容易定位,由于建立DATA GUARD时没有开启FORCE LOGGING,而主库在某些表空间运行了直径路径或者NOLOGGING的操作,导致备库一些对象不可恢复。
其实对于这个错误可以很方便的解决,首先将主库和备库分别设置FORCE LOGGING。需要注意,一般在部署DATA GUARD时,只需要在主库进行FORCE LOGGING的设置,这是因为在标准流程中,这个设置在控制文件备份之前,如果在STANDBY控制文件产生之后才对主库进行设置,那么备库也需要进行同样的设置,因为FORCE LOGGING的设置是记录在控制文件中的。
下一步就是在主库重新备份报错的数据文件,然后关闭备库并启动到MOUNT状态,重新还原并恢复这些错误的数据文件既可。
对于绝大部分的情况,备库出现了故障后都没有必要完全重建,而只需要修复故障的部分既可。

This entry was posted in ORACLE and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *