一个维保客户和我说他们测试库删除了日志文件导致库无法启动,让我帮忙看看
客户现场现况
1. 磁盘空间使用100%
[oracle@We1-db_Test ~]$ df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 3.9G 0 3.9G 0% /devtmpfs 3.9G 0 3.9G 0% /dev/shmtmpfs 3.9G 880K 3.9G 1% /runtmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/vda1 40G 38G 92M 100% /tmpfs 783M 0 783M 0% /run/user/0 |
2. 数据库redo被删除了部分,而且是active状态的被删除
[oracle@We1-db_Test ~]$ ls -l /opt/app/oracle/oradata/orcl/redo0*-rw-r----- 1 oracle oinstall 52429312 Jan 15 15:29 /opt/app/oracle/oradata/orcl/redo04.log-rw-r----- 1 oracle oinstall 52429312 Jan 15 16:26 /opt/app/oracle/oradata/orcl/redo05.logSQL> select group#,SEQUENCE#,STATUS FROM V$lOG; GROUP# SEQUENCE# STATUS---------- ---------- ---------------- 1 8989 CURRENT 2 0 UNUSED 5 0 UNUSED 4 0 UNUSED 3 8988 ACTIVESQL> select member from v$logfile;MEMBER-----------------------------------------------------/opt/app/oracle/oradata/orcl/redo03.log/opt/app/oracle/oradata/orcl/redo02.log/opt/app/oracle/oradata/orcl/redo01.log/opt/app/oracle/oradata/orcl/redo04.log/opt/app/oracle/oradata/orcl/redo05.log |
基于当前情况,直接open库无望,但是空间不足问题需要先解决,不然恢复过程中创建redo空间不足依旧会报错卡死,所以先清理了监听和alert等日志,系统空闲了3G多空间,可以进行恢复操作
[oracle@We1-db_Test trace]$ df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 3.9G 0 3.9G 0% /devtmpfs 3.9G 0 3.9G 0% /dev/shmtmpfs 3.9G 880K 3.9G 1% /runtmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup/dev/vda1 40G 34G 3.9G 90% /tmpfs 783M 0 783M 0% /run/user/0 |
恢复数据库
1. 由于active redo丢失,毫无疑问,直接强制拉库,使用_allow_resetlogs_corruption参数开干
SQL> startup mount pfile='/tmp/pfile';ORACLE instance started.Total System Global Area 2455228416 bytesFixed Size 2255712 bytesVariable Size 905970848 bytesDatabase Buffers 1526726656 bytesRedo Buffers 20275200 bytesDatabase mounted.SQL> recover database until cancel;ORA-00283: recovery session canceled due to errorsORA-01610: recovery using the BACKUP CONTROLFILE option must be doneSQL> recover database using backup controlfile;ORA-00279: change 311982775 generated at 12/31/2025 17:35:11 needed for thread1ORA-00289: suggestion :/opt/app/oracle/fast_recovery_area/ORCL/archivelog/2026_01_16/o1_mf_1_8988_%u_.arcORA-00280: change 311982775 for thread 1 is in sequence #8988Specify log: {<RET>=suggested | filename | AUTO | CANCEL}cancelMedia recovery cancelled.SQL> alter database open resetlogs;alter database open resetlogs*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00600: internal error code, arguments: [2663], [0], [311982792], [0],[311982833], [], [], [], [], [], [], []Process ID: 11917Session ID: 576 Serial number: 3 |
alert日志报错
Fri Jan 16 21:25:31 2026Assigning activation ID 1750515127 (0x6856bdb7)Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /opt/app/oracle/oradata/orcl/redo01.logSuccessful open of redo thread 1MTTR advisory is disabled because FAST_START_MTTR_TARGET is not setFri Jan 16 21:25:31 2026SMON: enabling cache recoveryErrors in file /opt/app/oracle/diag/rdbms/orcl/we1db/trace/we1db_ora_11917.trc (incident=81753):ORA-00600: internal error code, arguments: [2663], [0], [311982792], [0], [311982833], [], []Incident details in: /opt/app/oracle/diag/rdbms/orcl/we1db/incident/incdir_81753/we1db_ora_11917_i81753.trcUse ADRCI or Support Workbench to package the incident.See Note 411.1 at My Oracle Support for error and packaging details.Errors in file /opt/app/oracle/diag/rdbms/orcl/we1db/trace/we1db_ora_11917.trc:ORA-00600: internal error code, arguments: [2663], [0], [311982792], [0], [311982833], [], []Errors in file /opt/app/oracle/diag/rdbms/orcl/we1db/trace/we1db_ora_11917.trc:ORA-00600: internal error code, arguments: [2663], [0], [311982792], [0], [311982833], [], []Error 600 happened during db open, shutting down databaseUSER (ospid: 11917): terminating the instance due to error 600Instance terminated by USER, pid = 11917ORA-1092 signalled during: alter database open resetlogs...opiodr aborting process unknown ospid (11917) as a result of ORA-1092Fri Jan 16 21:25:33 2026ORA-1092 : opitsk aborting process |
不幸数据库遇到ORA-600 2663错误,这个故障在以前的文章中描述过,基本上和ORA-600 2662的处理思路类似,这里直接使用:Patch_SCN for Linux进行恢复
2. 使用Patch_SCN处理数据库SCN
SQL> startup nomount pfile='/tmp/pfile';ORACLE instance started.Total System Global Area 2455228416 bytesFixed Size 2255712 bytesVariable Size 905970848 bytesDatabase Buffers 1526726656 bytesRedo Buffers 20275200 bytesSQL>@rectlControl file created.SQL> recover database;Media recovery complete. |
SQL> alter database open;Database altered.SQL> SELECT CURRENT_SCN FROM V$DATABASE; CURRENT_SCN---------------- 322002903 |
到这里完成数据库open操作,后续逻辑导出完成恢复任务

浙公网安备 33010602011771号