模拟删除归档的active日志文件
SQL> recover database;
ORA-00279: 更改 2554418 (在 05/10/2023 09:56:19 生成) 对于线程 1 是必需的 ORA-00289:
建议: C:\APP\86180\ORADATA\WSDC\ARCHIVELOG\LOG_1_7_1136302634.ARC
ORA-00280: 更改 2554418 (用于线程 1) 在序列 #7 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\app\86180\oradata\WSDC\archivelog\LOG_1_7_1136302634.ARC
已应用的日志。
完成介质恢复。
后面想打开数据库时,数据库是找不到丢失的日志文件的,因为丢失的日志文件是active状态,数据库启动时,需要用到这个日志文件,但日志文件丢失,所以无法启动数据库。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员 ORA-00312:
联机日志 1 线程 1: 'C:\APP\86180\ORADATA\WSDC\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: ļ
O/S-Error: (OS 2) ϵͳҲָļ
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
这时日志文件已丢失和系统中记录的信息不符,即便用命令删除日志文件也会报错,所以需要让数据库启动时忽略日志文件,具体操作如下
SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
系统已更改。
SQL> alter database open resetlogs;
alter database open resetlogs
SQL> startup mount;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE 例程已经启动。
Total System Global Area 2421825536 bytes
Fixed Size 2178136 bytes
Variable Size 1392509864 bytes
Database Buffers 1006632960 bytes
Redo Buffers 20504576 bytes
数据库装载完毕。
SQL> alter database open;
数据库已更改。
SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;
系统已更改。