最初是由于业务系统报ORA-01578导致

然后相关人员上来进行了一系列操作,包括但不限于offline文件,create datafile 44,recover datafile,还尝试做resetlogs,使用备份控制文件还原等等.我接手该故障的时候状态

44号文件状态是12月1日的,而且resetlogs信息也不对.通过和客户沟通,确认是他们在没有备份44号文件的前提下直接执行了类似alter database create datafile 44的命令,但是在应用了写归档之后,发现提示有归档不存在
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log ``/data/app/oracle/archive/orcl/1_181285_1103629544``.dbf ORA-279 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ... ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log ``/data/app/oracle/archive/orcl/1_181286_1103629544``.dbf Tue Jan 06 12:48:12 2026 Errors with log ``/data/app/oracle/archive/orcl/1_181286_1103629544``.dbf Errors ``in file /data/app/oracle/diag/rdbms/orcl8/orcl/trace/orcl_pr00_8338``.trc: ORA-00308: cannot ``open archived log ``'/data/app/oracle/archive/orcl/1_181286_1103629544.dbf' ORA-27037: unable to obtain ``file status Linux-x86_64 Error: 2: No such ``file or directory Additional information: 3 |
分析现存归档,确实发现12月1日之后丢失了部分归档日志(归档不连续)

基于这种情况(故障数据文件直接被覆盖,归档又出现了多天的连续断档,而且没有有效备份),只能先打开数据库,然后根据情况导出数据,然后导入到新库中.这里我直接使用obet来修改resetlogs和checkpoint 信息,实现数据库快速打开
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| OBET> help OBET (Oracle Block Editor Tool) commands: ``open <config_file> - Load ``file list from config ``file (``format``: <num> <path>) ``info - Show loaded ``file list (from ``open command``) ``set filename <path> - Set target ``file path (required) ``set file <num> - Set filename using loaded ``file number (from ``open list) ``set blocksize <size> - Set block size (2048,4096,[8192],16384,32768) ``set block <num> - Set block number (starts from 0, default: 1) ``set offset <offset> - Set offset within block (< blocksize, default: 0) ``set count <bytes> - Set number of bytes to ``read (default: 32) ``set mode edit``/browse - Enable edit``/browse mode ``d``/dump [options] - Display data (options: block X, offset Y, count N) ``m``/modify <hex> [opts] - Modify data with hex (opts: block X, offset Y) ``undo - Undo last modification ``sum [block X] - Calculate checksum ``for block (default: current block) ``sum apply [block X] - Apply checksum: write calculated value to block ``tailchk [block X] - Calculate tailchk ``for block (default: current block) ``tailchk apply [block X] - Apply tailchk: write calculated value to block ``repair [block X] - Repair bad block (fix seq_kcbh, tailchk, checksum) ``copy data <src> to <dest> - Copy data between files ``<src> ``format``: ``file``,block,offset,count (e.g., 1,1,10,64) ``<dest> ``format``: ``file``[,block][,offset] (e.g., 3 or 3,1 or 3,1,128) ``copy block ``file``#,block# to file#,block# - Copy entire data block ``copy chkscn ``file n to ``file m - Copy datafile header checkpoint SCN info ``copy resetlogscn ``file n to ``file m - Copy datafile header resetlogs info ``backup [``file n] [block m] - Backup data block (optional ``file and block parameters) ``corrupt [block X] - Mark block as corrupted (default: current block) ``show - Display current settings (filename, blocksize, block, offset, count, mode) ``license - Show``/manage software license (registration code required) ``version - Show software version and developer information ``p``/print <param> - Print Oracle structure,Use the ``'p/print' command to see details ``undo - Undo the last copy chkscn or copy resetlogscn operation ``spool <``file``> - Start logging to ``file (spool off to stop) ``help - Show this help message ``quit``/exit - Exit OBET OBET> ``open 1.txt Loaded 2 files from config ``file '1.txt'``. OBET> info Loaded files (2 total): ---------------------------------------- Number Path ---------------------------------------- ``1 ``/data/app/oracle/oradata/orcl/system01``.dbf ``44 ``/data/app/oracle/oradata/orcl/xff26``.dbf ---------------------------------------- OBET> ``set file 44 filename ``set to: ``/data/app/oracle/oradata/orcl/xff26``.dbf (``file``#44) OBET> d File: ``/data/app/oracle/oradata/orcl/xff26``.dbf Block: 1 Offsets: 0 to 31 -------------------------------------------------------------------------------- 00002000 0BA20000 0100000B 00000000 00000104 B05F0000 00000000 0004200B 65583D61 <32 bytes ``read``> OBET> backup ``file 44 block 1 Created backup directory: backup_blk Successfully backed up block 1 from ``file``#44 to /tmp/backup_blk/xff26.dbf_1.20260106182405 OBET> copy resetlogscn ``file 1 to ``file 44 Error: Edit mode not enabled. Use ``'set mode edit' first. OBET> ``set mode edit mode ``set to: edit OBET> copy resetlogscn ``file 1 to ``file 44 Confirm Modify resetlogscn: Source: ``file``#1 (/data/app/oracle/oradata/orcl/system01.dbf) Target: ``file``#44 (/data/app/oracle/oradata/orcl/xff26.dbf) Proceed? (Y``/YES to confirm): y Successfully copied resetlog SCN information from ``file``#1 to file#44. OBET> copy chkscn ``file 1 to ``file 44 Confirm Modify chkscn: Source: ``file``#1 (/data/app/oracle/oradata/orcl/system01.dbf) Target: ``file``#44 (/data/app/oracle/oradata/orcl/xff26.dbf) Proceed? (Y``/YES to confirm): y Successfully copied checkpoint SCN information from ``file``#1 to file#44. OBET> tailchk Check tailchk ``for File ``/data/app/oracle/oradata/orcl/xff26``.dbf, Block 1: current = 0x010B0000, required = 0x010B0000 OBET> ``sum Check value ``for File ``/data/app/oracle/oradata/orcl/xff26``.dbf, Block 1: current = 0xB05F, required = 0x6DA3 OBET> ``sum apply Confirm applying checksum: File: ``/data/app/oracle/oradata/orcl/xff26``.dbf Block: 1 Offset ``in block: 16 (``file offset: 0x00002010) Original value: 0xB05F New value: 0x6DA3 Confirm? (Y``/YES to proceed): y Verification successful: Stored checksum matches calculated value (0x6DA3). Checksum applied successfully. |
然后重建ctl正常打开数据库
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [oracle@xifenfei check_db]$ sqlplus / ``as sysdba SQL*Plus: Release 11.2.0.4.0 Production ``on Tue Jan 6 18:29:22 2026 Copyright (c) 1982, 2013, Oracle. ``All rights reserved. Connected ``to an idle instance. SQL> startup mount pfile=``'/tmp/pfile'``; ORACLE instance started. Total System ``Global Area 6.8413E+10 bytes Fixed ``Size 2270360 bytes Variable ``Size 3.3554E+10 bytes Database Buffers 3.4762E+10 bytes Redo Buffers 93585408 bytes Database mounted. SQL> ``alter database open``; alter database open * ERROR ``at line 1: ORA-01190: control file ``or data file 1 ``is from before the ``last RESETLOGS ORA-01110: data file 1: ``'/data/app/oracle/oradata/orcl/system01.dbf' SQL> shutdown immediate; ORA-01109: ``database not open Database dismounted. ORACLE instance shut down. SQL> SQL> SQL> startup nomount pfile=``'/tmp/pfile '``; ORACLE instance started. Total System ``Global Area 6.8413E+10 bytes Fixed ``Size 2270360 bytes Variable ``Size 3.3554E+10 bytes Database Buffers 3.4762E+10 bytes Redo Buffers 93585408 bytes SQL> @ctl.sql Control file created. SQL> SQL> recover ``database``; ORA-00283: recovery session canceled due ``to errors ORA-00264: ``no recovery required SQL> ``alter database open``; Database altered. |
后续根据情况选择导出表,对于导出报错的表再进行二次处理.