省局数据文件丢失找回后,关闭数据库报错ORA-01208: data file is an old version

背景:

数据文件user05.dbf~user11.dbf在磁盘中异常被删除,之后通过其他方式找回后,重新放入原来的目录,整个过程数据库一直处于open没有关闭。在关闭数据库时,报错:

SQL> shutdown immediate;
ORA-01122: database file 11 failed verification check
ORA-01110: data file 11: '/sharespace/73data/datafile/user05.dbf'
ORA-01208: data file is an old version - not accessing current version

同时跟踪告警日志,有如下一段:

Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Read of datafile '/sharespace/73data/datafile/user05.dbf' (fno 11) header failed with ORA-01208
Rereading datafile 11 header failed with ORA-01208

官方解释:

01208, 00000, "data file is an old version - not accessing current version"   
// *Cause:  The checkpoint in the file header is less recent than in the   
//         control file. If opening a database that is already open by another 
//         instance, or if another instance just brought this file online,
//         the file accessed by this instance is probably a different version.
//         Otherwise, a backup of the file probably was restored 
//         while the file was in use.  
// *Action: Make the correct file available to the database. Then, either open
//         the database, or execute ALTER SYSTEM CHECK DATAFILES.

根据该错误的解释,可以理解原因是数据文件头信息中的检查点小于控制文件中的检查点。

解决方式,先尝试offline数据文件,再进行介质恢复

SQL> alter database  datafile '/sharespace/73data/datafile/user05.dbf' offline;
alter database    datafile '/sharespace/73data/datafile/user05.dbf' offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled

非归档模式下,不能直接offline数据文件,需要先offline表空间

于是,将表空间进行脱机

SQL> alter tablespace users offline;
alter tablespace users offline
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [krhpfh_03-1208], [fno =], [11],
[fecpc =], [245637], [fhcpc =], [237283], [], [], [], [], []
ORA-01110: data file 11: '/sharespace/73data/datafile/user05.dbf'
ORA-00600: internal error code, arguments: [krhpfh_03-1208], [fno =], [11],
[fecpc =], [245637], [fhcpc =], [237283], [], [], [], [], []
ORA-01110: data file 11: '/sharespace/73data/datafile/user05.dbf'
ORA-00600: internal error code, arguments: [krhpfh_03-1208], [fno =], [11],
[fecpc =], [245637], [fhcpc =], [237283], [], [], [], [], []
ORA-01110: data file 11: '/sharespace/73data/datafile/user05.dbf'
ORA-01122: database file 11 failed verification check
ORA-01110: data file 11: '/sharespace/73data/datafile/user05.dbf'
ORA-01208: data file is an old version - not accessing current version
Process ID: 287225
Session ID: 563 Serial number: 46727

发现还是报错,看能必须对数据库中止后才能维护,常规关闭已经无法进行

SQL> shutdown abort
ORACLE instance shut down.

启动到mount

SQL> startup mount;
ORACLE instance started.

Total System Global Area 8.0973E+10 bytes
Fixed Size            2237088 bytes
Variable Size         1.1274E+10 bytes
Database Buffers     6.9256E+10 bytes
Redo Buffers          439947264 bytes
Database mounted.

进行介质恢复/sharespace/73data/datafile/user05.dbf

。。。。

recover恢复数据库是以归档日志进行恢复的,如果归档日志不存在,则恢复不了

查看数据文件SCN号:

SQL> col checkpoint_change# format 99999999999999999999
SQL> select file#,checkpoint_change# from v$datafile;

     FILE#    CHECKPOINT_CHANGE#
---------- ---------------------
     1      15905428863965
     2      15905428863965
     3      15905428863965
     4      15905428863965
     5      15905428863965
     6      15905428863965
     7      15905428863965
     8      15905428863965
     9      15905428863965
    10      15905428863965
    11      15905428863965

     FILE#    CHECKPOINT_CHANGE#
---------- ---------------------
    12      15905428863965
    13      15905428863965
    14      15905428863965
    15      15905428863965
    16      15905428863965
    17      15905428863965

查看数据文件头SCN号:

SQL> select file#,checkpoint_change# from v$datafile_header;

     FILE#    CHECKPOINT_CHANGE#
---------- ---------------------
     1      15905428863965
     2      15905428863965
     3      15905428863965
     4      15905428863965
     5      15905428863965
     6      15905428863965
     7      15905428863965
     8      15905428863965
     9      15905428863965
    10      15905428863965
    11      15905412272409

     FILE#    CHECKPOINT_CHANGE#
---------- ---------------------
    12      15905412277789
    13      15905412277789
    14      15905412281504
    15      15905412281504
    16      15905412286155
    17      15905412286155

查看数据文件信息:

SQL> col name format a100
SQL> set linesize 2000
SQL> select file#,name from v$dbfile;

     FILE# NAME
---------- ----------------------------------------------------------------------------------------------------
     4 /data/oracle/app/oracle/oradata/orcl/users01.dbf
     3 /data/oracle/app/oracle/oradata/orcl/undotbs01.dbf
     2 /data/oracle/app/oracle/oradata/orcl/sysaux01.dbf
     1 /data/oracle/app/oracle/oradata/orcl/system01.dbf
     5 /data/oracle/app/oracle/oradata/orcl/dwjk001.dbf
     6 /data/oracle/app/oracle/oradata/orcl/dwjk002.dbf
     7 /data/oracle/app/oracle/oradata/orcl/dwjk003.dbf
     8 /data/oracle/app/oracle/oradata/orcl/user02.dbf
     9 /data/oracle/app/oracle/oradata/orcl/user03.dbf
    10 /data/oracle/app/oracle/oradata/orcl/user04.dbf
    11 /sharespace/73data/datafile/user05.dbf

     FILE# NAME
---------- ----------------------------------------------------------------------------------------------------
    12 /sharespace/73data/datafile/user06.dbf
    13 /sharespace/73data/datafile/user07.dbf
    14 /sharespace/73data/datafile/user08.dbf
    15 /sharespace/73data/datafile/user09.dbf
    16 /sharespace/73data/datafile/user10.dbf
    17 /sharespace/73data/datafile/user11.dbf

17 rows selected.

猜你喜欢

转载自www.cnblogs.com/sorliran/p/9124775.html
old