标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-600 kdsgrp1 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,855)
- DB2 (22)
- MySQL (82)
- Oracle (1,682)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (71)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (640)
- Oracle安装升级 (106)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (90)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (4)
- 达梦恢复 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (48)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (31)
-
最近发表
- 硬件故障后数据文件大小不对故障处理—Oracle碎片扫描恢复
- 1.5T MySQL数据库完美恢复
- WARNING: detected duplicate paths to the same disk导致crs无法正常启动故障解决
- asm dd 10M导致system文件部分坏块修复
- Oracle 19c 202604补丁(RUs+OJVM)-19.31
- Oracle故障第一现场被恢复混乱的数据库恢复
- impdp报ORA-39083 ORA-14102错误处理
- 一次断电引起的Oracle故障恢复-ora-600 2662故障
- OraScan(Oracle 碎片扫描工具) 使用说明
- .[xueyuanjie@onionmail.org].AIR勒索加密数据库恢复
- oracleasm createdisk破坏的acfs文件系统恢复
- 先offline数据文件,再resetlogs导致恢复复杂的故障处理
- exp dmp导入报IMP-00098: INTERNAL ERROR: impgst2故障处理
- Oracle 19c Grid Infrastructure Release Update-202604(19.31)
- Oracle Database 19c Release Update-202604(19.31)
- aix环境rac 私网直连导致haip启动异常
- 又一例TRIM导致asm磁盘数据丢失的故障
- 一次运气好的ORA-600 kcratr_nab_less_than_odr故障处理
- OraFHR快速open被勒索加密破坏的Oracle数据库
- obet一键恢复offline数据文件
标签归档:ORA-600 2662
一次断电引起的Oracle故障恢复-ora-600 2662故障
接手一个oracle恢复case,由于断电导致oracle数据库异常,现场人员进行了一系列的恢复成功,但是没有成功open库,我接手故障之后尝试做recover 报ORA-16433错误
[oracle@xifenfei.com ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sun May 10 09:27:51 2026 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SQL> recover database; ORA-00283: recovery session canceled due to errors ORA-16433: The database must be opened in read/write mode.
根据经验这种错误一般是由于强制打开库失败导致,回溯oracle alert日志发现类似操作
Fri May 08 18:47:59 2026 ALTER DATABASE OPEN RESETLOGS RESETLOGS is being done without consistancy checks. This may result in a corrupted database. The database should be recreated. RESETLOGS after incomplete recovery UNTIL CHANGE 138986145572 Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/data/oracle/oradata/xff/redo01.log' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 Clearing online redo logfile 1 /data/oracle/oradata/xff/redo01.log Clearing online log 1 of thread 1 sequence number 2389 Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/data/oracle/oradata/xff/redo01.log' ……………… Clearing online redo logfile 3 complete Resetting resetlogs activation ID 677485461 (0x28619b95) Online log /data/oracle/oradata/xff/redo01.log: Thread 1 Group 1 was previously cleared Online log /data/oracle/oradata/xff/redo02.log: Thread 1 Group 2 was previously cleared Online log /data/oracle/oradata/xff/redo03.log: Thread 1 Group 3 was previously cleared Fri May 08 18:48:17 2026 Setting recovery target incarnation to 4 Fri May 08 18:48:17 2026 Assigning activation ID 677634815 (0x2863e2ff) Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /data/oracle/oradata/xff/redo01.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Fri May 08 18:48:18 2026 SMON: enabling cache recovery Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc (incident=170321): ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040], [] Fri May 08 18:48:20 2026 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 /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc: ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040] Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_ora_37813.trc: ORA-00600: internal error code, arguments: [2662], [32], [1547192107], [32], [1547212241], [12583040] Error 600 happened during db open, shutting down database USER (ospid: 37813): terminating the instance due to error 600 Instance terminated by USER, pid = 37813 ORA-1092 signalled during: ALTER DATABASE OPEN RESETLOGS...
对于这种情况,先重建控制文件
SQL> @/tmp/rectl.sql Control file created.
尝试recover database恢复
ALTER DATABASE RECOVER database Media Recovery Start started logmerger process Parallel Media Recovery started with 96 slaves Sun May 10 09:33:03 2026 Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0 Mem# 0: /data/oracle/oradata/xff/redo02.log Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_pr00_250074.trc (incident=254397): ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37 ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log' Incident details in: /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_pr00_250074_i254397.trc Sun May 10 09:33:04 2026 Media Recovery failed with error 399 Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_pr00_250074.trc: ORA-00283: recovery session canceled due to errors ORA-00399: corrupt change description in redo log ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37 ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log' ORA-10877 signalled during: ALTER DATABASE RECOVER database ... Sun May 10 09:33:04 2026 Sweep [inc][254397]: completed Errors in file /data/oracle/diag/rdbms/xff/xff/trace/xff_m000_250348.trc (incident=255173): ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37 ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log' Errors in file /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_m000_250348_i254397_a.trc: ORA-00399: corrupt change description in redo log ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37 ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log' Errors in file /data/oracle/diag/rdbms/xff/xff/incident/incdir_254397/xff_m000_250348_i254397_a.trc: ORA-00399: corrupt change description in redo log ORA-00353: log corruption near block 3 change 138986165586 time 05/08/2026 18:55:37 ORA-00312: online log 2 thread 1: '/data/oracle/oradata/xff/redo02.log' Sun May 10 09:34:05 2026
由于无法正常recover 操作,数据库需要强制打开,考虑到之前该库open的过程有ORA-600 2662错误,这次在打开之前使用Patch_SCN调整SCN(关于Patch_SCN文章:Patch_SCN for Linux 功能完善
[oracle@xifenfei.com tmp]$ ./Patch_SCN 249756 0x205D38954E Successfully obtained address automatically: 0x6001ae70 Original Oracle SCN at Address 0x6001ae70: 0x0 Are you sure you want to modify Oracle SCN? (yes/no): yes New SCN at Address 0x6001ae70: 0x205d38954e Oracle SCN successfully modified.
在expdp导出数据过程中遇到了硬件错误


为了安全性采用库只读情况下exp进行导出,运气不错所有数据顺利导出,完成本次数据恢复任务

先offline数据文件,再resetlogs导致恢复复杂的故障处理
本来是一个简单的数据文件被误删除,然后通过底层恢复出来数据文件,再启动库就可以的事情,结果由于对oracle的不了解和自以为是,直接把丢失的文件不存在的情况下,offline文件,然后尝试resetlogs打开库,并且进行了各种尝试,结果使得问题比较麻烦.
故障之后现象
通过分析alert日志大概的主要错误,大概梳理故障情况
1. 启动数据库报control03.ctl丢失
Fri Apr 17 21:53:03 2026 MMNL started with pid=16, OS id=3613 ORACLE_BASE from environment = /data/oracle Fri Apr 17 21:53:08 2026 alter database mount ORA-00210: cannot open the specified control file ORA-00202: control file: '/data/oracle/oradata/orcl/control03.ctl' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 ORA-00210: cannot open the specified control file ORA-00202: control file: '/data/oracle/oradata/orcl/control02.ctl' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 ORA-205 signalled during: alter database mount...
如果只是这个文件丢失(这里还没有看到其他数据文件丢失的报错),本身是一个非常简单的故障,直接修改control_files参数即可
2. 结果当时操作的人直接rectl
Fri Apr 17 21:57:01 2026
Successful mount of redo thread 1, with mount id 1758675116
Completed: CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/data/oracle/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/data/oracle/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/data/oracle/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512
DATAFILE
'/data/oracle/oradata/orcl/system01.dbf',
'/data/oracle/oradata/orcl/sysaux01.dbf',
'/data/oracle/oradata/orcl/undotbs01.dbf',
'/data/oracle/oradata/orcl/users01.dbf'
CHARACTER SET ZHS16GBK
3.然后启动数据库报错
Fri Apr 17 22:02:43 2026 ALTER DATABASE OPEN Beginning crash recovery of 1 threads parallel recovery started with 3 processes Started redo scan Completed redo scan read 39020 KB redo, 0 data blocks need recovery Started redo application at Thread 1: logseq 11590, block 2, scn 137806010 Recovery of Online Redo Log: Thread 1 Group 1 Seq 11590 Reading mem 0 Mem# 0: /data/oracle/oradata/orcl/redo01.log Completed redo application of 0.00MB Completed crash recovery at Thread 1: logseq 11590, block 78042, scn 137831847 0 data blocks read, 0 data blocks written, 39020 redo k-bytes read Fri Apr 17 22:02:44 2026 Thread 1 advanced to log sequence 11591 (thread open) Thread 1 opened at log sequence 11591 Current log# 2 seq# 11591 mem# 0: /data/oracle/oradata/orcl/redo02.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Fri Apr 17 22:02:44 2026 SMON: enabling cache recovery Successfully onlined Undo Tablespace 2. Dictionary check beginning Tablespace 'TEMP' #3 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ERP_XXXX' #6 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ERP_AAAA' #7 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ABCD' #8 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ERP_BBBB' #9 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ERP_XXD' #10 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'ERP_12SF' #11 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'XXX14' #12 found in data dictionary, but not in the controlfile. Adding to controlfile. Tablespace 'P_ZY' #13 found in data dictionary, but not in the controlfile. Adding to controlfile. File #5 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00005' in the controlfile. File #6 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00006' in the controlfile. File #7 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00007' in the controlfile. File #8 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00008' in the controlfile. File #9 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00009' in the controlfile. File #10 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00010' in the controlfile. File #11 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00011' in the controlfile. File #12 found in data dictionary but not in controlfile. Creating OFFLINE file 'MISSING00012' in the controlfile.
4.然后尝试resetlogs操作
Sat Apr 18 05:55:10 2026 ALTER DATABASE MOUNT Successful mount of redo thread 1, with mount id 1758652862 Database mounted in Exclusive Mode Lost write protection disabled Completed: ALTER DATABASE MOUNT Sat Apr 18 05:55:14 2026 ALTER DATABASE OPEN RESETLOGS ORA-1139 signalled during: ALTER DATABASE OPEN RESETLOGS... Sat Apr 18 05:56:29 2026 Starting ORACLE instance (normal) ALTER DATABASE RECOVER DATABASE UNTIL CANCEL Media Recovery Start started logmerger process Parallel Media Recovery started with 4 slaves Sat Apr 18 05:56:29 2026 Warning: Datafile 5 (/data/oracle/orcl/xxxx.dbf) is offline during full database recovery and will not be recovered Warning: Datafile 6 (/data/oracle/orcl/xxxx.dbf) is offline during full database recovery and will not be recovered Warning: Datafile 7 (/data/oracle/orcl/xxxx.dbf) is offline during full database recovery and will not be recovered Warning: Datafile 8 (/data/oracle/orcl/xxxx.dbf) is offline during full database recovery and will not be recovered Media Recovery Not Required Completed: ALTER DATABASE RECOVER DATABASE UNTIL CANCEL Sat Apr 18 05:57:45 2026 ALTER DATABASE OPEN RESETLOGS RESETLOGS after complete recovery through change 137865786 Resetting resetlogs activation ID 1645665187 (0x6216dba3) Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2549.trc: ORA-00367: checksum error in log file header ORA-00322: log 1 of thread 1 is not current copy ORA-00312: online log 1 thread 1: '/data/oracle/oradata/orcl/redo01.log' Sat Apr 18 05:57:45 2026 Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_2554.trc: ORA-00316: log 1 of thread 1, type 0 in header is not log file ORA-00312: online log 1 thread 1: '/data/oracle/oradata/orcl/redo01.log' Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2549.trc: ORA-00367: checksum error in log file header ORA-00322: log 2 of thread 1 is not current copy ORA-00312: online log 2 thread 1: '/data/oracle/oradata/orcl/redo02.log' Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_2554.trc: ORA-00316: log 2 of thread 1, type 0 in header is not log file ORA-00312: online log 2 thread 1: '/data/oracle/oradata/orcl/redo02.log' Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_2554.trc: ORA-00322: log 3 of thread 1 is not current copy ORA-00312: online log 3 thread 1: '/data/oracle/oradata/orcl/redo03.log' Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2549.trc: ORA-00367: checksum error in log file header ORA-00322: log 3 of thread 1 is not current copy ORA-00312: online log 3 thread 1: '/data/oracle/oradata/orcl/redo03.log' Sat Apr 18 05:57:46 2026 Setting recovery target incarnation to 2 Sat Apr 18 05:57:46 2026 Assigning activation ID 1758652862 (0x68d2e9be) Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /data/oracle/oradata/orcl/redo01.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Sat Apr 18 05:57:46 2026 SMON: enabling cache recovery Successfully onlined Undo Tablespace 2. Dictionary check beginning File #5 is offline, but is part of an online tablespace. data file 5: '/data/oracle/oradata/orcl/xxxx.dbf' File #6 is offline, but is part of an online tablespace. data file 6: '/data/oracle/oradata/orcl/xxxx.dbf' File #7 is offline, but is part of an online tablespace. data file 7: '/data/oracle/oradata/orcl/xxxx.dbf' File #8 is offline, but is part of an online tablespace. data file 8: '/data/oracle/oradata/orcl/xxxx.dbf'
到这一步悲剧基本上已经发生,犯了一个在oracle恢复里面比较忌讳的事情,有数据文件offline的情况下,执行resetlogs操作,导致部分数据文件的resetlogs信息没有被及时更新,导致一套库里面,被offline的这个部分数据文件resetlogs信息小于其他online的数据文件的。
5. 后续其他操作各种报错
Completed: ALTER DATABASE MOUNT Sun Apr 19 08:13:02 2026 ALTER DATABASE DATAFILE 5 OFFLINE DROP Sun Apr 19 08:13:02 2026 Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_dbw0_9212.trc (incident=67094): ORA-00600: internal error code, arguments: [3600], [5], [14], [], [], [], [], [], [], [], [], [] Incident details in: /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_67094/orcl_dbw0_9212_i67094.trc Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_dbw0_9212.trc: ORA-00600: internal error code, arguments: [3600], [5], [14], [], [], [], [], [], [], [], [], [] DBW0 (ospid: 9212): terminating the instance due to error 471
Tue Apr 21 22:31:23 2026 Assigning activation ID 1758985759 (0x68d7fe1f) Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /data/oracle/oradata/orcl/redo01.log Successful open of redo thread 1 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Tue Apr 21 22:31:23 2026 SMON: enabling cache recovery Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_4951.trc (incident=87950): ORA-00600: internal error code, arguments: [2662], [0], [137890858], [0], [137891091], [12583056], [] Incident details in: /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_87950/orcl_ora_4951_i87950.trc Errors in file /data/oracle/diag/rdbms/orcl/orcl/incident/incdir_87950/orcl_ora_4951_i87950.trc: ORA-00339: archived log does not contain any redo ORA-00334: archived log: '/data/oracle/oradata/orcl/redo03.log' ORA-00339: archived log does not contain any redo ORA-00334: archived log: '/data/oracle/oradata/orcl/redo02.log' ORA-00339: archived log does not contain any redo ORA-00334: archived log: '/data/oracle/oradata/orcl/redo02.log' ORA-00339: archived log does not contain any redo ORA-00334: archived log: '/data/oracle/oradata/orcl/redo03.log' ORA-00600: internal error code, arguments: [2662], [0], [137890858], [0], [137891091], [12583056], [] Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_4951.trc: ORA-00600: internal error code, arguments: [2662], [0], [137890858], [0], [137891091], [12583056], [] Errors in file /data/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_4951.trc: ORA-00600: internal error code, arguments: [2662], [0], [137890858], [0], [137891091], [12583056], [] Error 600 happened during db open, shutting down database USER (ospid: 4951): terminating the instance due to error 600
接手故障之后分析
使用obet工具直接快速的检查坏块情况和文件头信息,关于obet的介绍参考:
obet实现对数据文件坏块检测功能
Oracle数据块编辑工具( Oracle Block Editor Tool)-obet

dbv检测没任何坏块,比较好好的消息

但是检测数据文件头信息,发现有三种类型的resetlogs的信息,证明进行了多次部分文件的情况下进行了resetlogs操作
恢复处理
1. 使用Oracle Recovery Tools工具修改 resetlogs 信息
由于大量reseltogs 信息不一致,先使用Oracle Recovery Tools修改scn等相关信息Oracle Recovery Tools恢复案例总结—202505(注意选择resetlogs scn最大的文件为参照文件)

2. 重建ctl,打开库

比较幸运直接打开成功(本来也就应该成功,因为客户本身之前丢失主要业务文件的时候多次打开过库)
3. 然后增加temp文件,并expdp导出数据,完成本次恢复工作
Oracle典型故障:The controlfile header block returned by the OS has a sequence number that is too old
这个是一例子客户数据库运行过程中突然报:The controlfile header block returned by the OS has a sequence number that is too old.然后数据库无法正常启动的数据库恢复case
以前处理过一些类似case:Controlfile sequence number in file header is different from the one in memory
故障现象
alert日志中报The controlfile header block returned by the OS has a sequence number that is too old.错误,然后数据库crash
Wed Mar 18 12:00:44 2026
********************* ATTENTION: ********************
The controlfile header block returned by the OS
has a sequence number that is too old.
The controlfile might be corrupted.
PLEASE DO NOT ATTEMPT TO START UP THE INSTANCE
without following the steps below.
RE-STARTING THE INSTANCE CAN CAUSE SERIOUS DAMAGE
TO THE DATABASE, if the controlfile is truly corrupted.
In order to re-start the instance safely,
please do the following:
(1) Save all copies of the controlfile for later
analysis and contact your OS vendor and Oracle support.
(2) Mount the instance and issue:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(3) Unmount the instance.
(4) Use the script in the trace file to
RE-CREATE THE CONTROLFILE and open the database.
*****************************************************
USER (ospid: 15912): terminating the instance
这个错误比较明显是由于控制文件的sequence number比较老导致,出现这种问题,一般是由于io过慢,或者底层不稳定(比如虚拟化平台,文件系统异常,硬件不稳定等)导致(官方参考文档:The controlfile header block returned by the OS has a sequence number that is too old.)
尝试重启数据库报ORA-01207错误
Wed Mar 18 18:51:54 2026 alter database mount exclusive Successful mount of redo thread 1, with mount id 1534819594 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open Errors in file e:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_2992.trc: ORA-01122: ????? 18 ???? ORA-01110: ???? 18: 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\XIFENFEI.DBF' ORA-01207: ????????? - ?????? ORA-1122 signalled during: alter database open... Wed Mar 18 18:52:01 2026 Checker run found 1 new persistent data failures
该错误的官方解释
[oracle@xifenfei.com ~]$ oerr ora 1207 01207, 00000, "file is more recent than control file - old control file" // *Cause: The control file change sequence number in the data file is // greater than the number in the control file. This implies that // the wrong control file is being used. Note that repeatedly causing // this error can make it stop happening without correcting the real // problem. Every attempt to open the database will advance the // control file change sequence number until it is great enough. // *Action: Use the current control file or do backup control file recovery to // make the control file current. Be sure to follow all restrictions // on doing a backup control file recovery.
由于数据文件比控制文件更新,导致该问题,通过查询v$datafile_header发现更多类似异常文件(可以使用Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)收集信息)

alert日志文件中也有明显的写错日志信息

这些二进制内容和监听日志内容被写入到了alert日志中,证明当时文件系统或者操作系统甚至更底层出现了异常,这个客户是运行在云平台上的,具体运营需要平台厂商才能分析
故障处理
重建控制文件并进行recover
SQL> startup nomount pfile='e:/pfile.txt' ; ORACLE 例程已经启动。 Total System Global Area 2.9931E+10 bytes Fixed Size 2190296 bytes Variable Size 1946158120 bytes Database Buffers 2.7917E+10 bytes Redo Buffers 64905216 bytes SQL> @rectl.sql 控制文件已创建。 SQL> recover database; 完成介质恢复。
尝试启动数据库,报ora-600 2662错误
SQL> alter database open; alter database open * 第 1 行出现错误: ORA-00603: ORACLE server session terminated by fatal error ORA-00600: internal error code, arguments: [2662], [1], [45773288], [1], [45777527], [301990016] ORA-00600: internal error code, arguments: [2662], [1], [45773287], [1], [45777527], [301990016] ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [2662], [1], [45773285], [1], [45777527], [301990016] 进程 ID: 2708 会话 ID: 148 序列号: 5
数据库启动报ORA-600 2662错误,这个是典型的文件头scn过小的问题,通过自研小工具Patch_SCN可以快速解决,以前类似文章:
Patch SCN一键解决ORA-600 2662故障
Patch SCN工具一键恢复ORA-600 kcbzib_kcrsds_1
ORA-600 kcratr_nab_less_than_odr和ORA-600 2662故障处理

修改scn之后,数据库顺利打开
SQL> startup mount pfile='e:/pfile.txt'; ORACLE 例程已经启动。 Total System Global Area 2.9931E+10 bytes Fixed Size 2190296 bytes Variable Size 1946158120 bytes Database Buffers 2.7917E+10 bytes Redo Buffers 64905216 bytes 数据库装载完毕。 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-01113: 文件 1 需要介质恢复 ORA-01110: 数据文件 1: 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF' SQL> recover database; 完成介质恢复。 SQL> alter database open; 数据库已更改。


加我微信(17813235971)
加我QQ(107644445)

