联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Patch_SCN快速解决ORA-600 2663故障
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
一个维保客户和我说他们测试库删除了日志文件导致库无法启动,让我帮忙看看
客户现场现况
1. 磁盘空间使用100%
[oracle@We1-db_Test ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 880K 3.9G 1% /run tmpfs 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.log
SQL> select group#,SEQUENCE#,STATUS FROM V$lOG;
GROUP# SEQUENCE# STATUS
---------- ---------- ----------------
1 8989 CURRENT
2 0 UNUSED
5 0 UNUSED
4 0 UNUSED
3 8988 ACTIVE
SQL> 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 -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 880K 3.9G 1% /run tmpfs 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 bytes
Fixed Size 2255712 bytes
Variable Size 905970848 bytes
Database Buffers 1526726656 bytes
Redo Buffers 20275200 bytes
Database mounted.
SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> recover database using backup controlfile;
ORA-00279: change 311982775 generated at 12/31/2025 17:35:11 needed for thread
1
ORA-00289: suggestion :
/opt/app/oracle/fast_recovery_area/ORCL/archivelog/2026_01_16/o1_mf_1_8988_%u_.a
rc
ORA-00280: change 311982775 for thread 1 is in sequence #8988
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [2663], [0], [311982792], [0],
[311982833], [], [], [], [], [], [], []
Process ID: 11917
Session ID: 576 Serial number: 3
alert日志报错
Fri Jan 16 21:25:31 2026 Assigning activation ID 1750515127 (0x6856bdb7) Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /opt/app/oracle/oradata/orcl/redo01.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Fri Jan 16 21:25:31 2026 SMON: enabling cache recovery Errors 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.trc Use 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 database USER (ospid: 11917): terminating the instance due to error 600 Instance terminated by USER, pid = 11917 ORA-1092 signalled during: alter database open resetlogs... opiodr aborting process unknown ospid (11917) as a result of ORA-1092 Fri Jan 16 21:25:33 2026 ORA-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 bytes Fixed Size 2255712 bytes Variable Size 905970848 bytes Database Buffers 1526726656 bytes Redo Buffers 20275200 bytes SQL>@rectl Control 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操作,后续逻辑导出完成恢复任务

