Which statement about recovering from the loss of a redo log group is true?
A. If the lost redo log group is ACTIVE, you should first attempt to clear the log file.
B. If the lost redo log group is CURRENT, you must clear the log file.
C. If the lost redo log group is ACTIVE, you must restore, perform cancel-based incomplete recovery, and open the database using the RESETLOGS option.
D. If the lost redo log group is CURRENT, you must restore, perform cancel-based incomplete recovery, and open the database using the RESETLOGS option.
如 果 丢 失 的 是 active 日 志 组 , 数 据 库 是 open 的 , 那 么 首 先 可 以 尝 试 执行 the ALTER SYSTEM CHECKPOINT,如果这个命令成功执行,那么 active 的日志组会变成 inactive。如果操作不成功或者数据库挂掉了,后续的操作依赖于归档模式。
如果是非归档模式,那么只能进行非完全恢复(RECOVER DATABASE UNTIL CANCEL),然后使用 resetlogs 方式打开数据库。如果是归档模式,确保当前丢失的日志组可以被重新创建。执行不完全恢复,直到损坏日志组之前,然后使用 resetlogs 打开数据库。
如果是丢失的 current 日志,由于是 LGWR 正在写的,那么会导致 LGWR I/O 错误,实例会挂掉。在这种情况下,你必须从备份重建,执行不完全恢复,用resetlogs 选项打开数据库。