Your database is in ARCHIVELOG mode. You have two online redo log groups, each of which contains one redo member. When you attempt to start the database, you receive the following errors:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: 'D:REDO01.LOG'
You discover that the online redo log file of the current redo group is corrupted.
Which statement should you use to resolve this issue?
A. ALTER DATABASE DROP LOGFILE GROUP 1;
B. ALTER DATABASE CLEAR LOGFILE GROUP 1;
C. ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 1;
D. ALTER DATABASE DROP LOGFILE MEMBER 'D:REDO01.LOG';
当前日志组的状态时非归档的。可以将数据库启动到 mount 状态使用
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
命令来清理。如果有离线的数据库文件需要这些日志来 online,还需要加上 UNRECOVERABLE DATAFILE。在清理了这些日志之后,那些离线的数据文件在没备份的情况下只能被删除。例如:
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2 UNRECOVERABLE DATAFILE;
--在做清理操作之前,记得备份数据文件和控制文件。
其实,当在 v$log 中的状态时 CURRENT 或 ACTIVE 时,使用 clear 命令清理日志时,可能会出现 ORA-1624错误(除非是不需要进行实例恢复的时候才能清理)。这种情况下,数据库必须重建和恢复到最近可用的归档的时间点。
此题意是正常关闭数据库后,启动时发现当前日志组损坏,故 C 正确。