数据文件 failed check 的处理 - “ORA-01122database file 201 failed”

2014-11-24 18:38:22 · 作者: · 浏览: 0

检查alert日志:


Errors in file /u01/pp/oracle/admin/ezhou/bdump/ezhou_dbw0_6672.trc:
ORA-01186: file 201 failed verification tests
ORA-01122: database file 201 failed verification check
ORA-01110: data file 201: '/u02/ezhou/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN
Fri Dec 9 11:14:17 2011
File 201 not verified due to error ORA-01122


报我的test01.dbf 有问题。
我看一下:
SQL> select * from v$tempfile;


FILE# CREATION_CHANGE# CREATION_TIME TS# RFILE# STATUS
---------- ---------------- ------------------- ---------- ---------- -------
ENABLED BYTES BLOCKS CREATE_BYTES BLOCK_SIZE
---------- ---------- ---------- ------------ ----------
NAME
--------------------------------------------------------------------------------
1 446161 2011-08-27 21:25:00 3 1 ONLINE
READ WRITE 52428800 6400 20971520 8192
/u02/ezhou/temp01.dbf


是online 的。


思路:先offline 再online:
发现: offline 容易,online 难:


SQL> alter database tempfile '/u02/ezhou/temp01.dbf' offline;


Database altered.


SQL> alter database tempfile '/u02/ezhou/temp01.dbf' online;
alter database tempfile '/u02/ezhou/temp01.dbf' online
*
ERROR at line 1:
ORA-01122: database file 201 failed verification check
ORA-01110: data file 201: '/u02/ezhou/temp01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN



好,下面试试删除重建:


SQL> alter database tempfile '/u02/ezhou/temp01.dbf' drop;


Database altered.


SQL> alter tablespace temp add tempfile '/u02/ezhou/temp01.dbf' size 100m;
alter tablespace temp add tempfile '/u02/ezhou/temp01.dbf' size 100m
*
ERROR at line 1:
ORA-01109: database not open


没有办法。
在看一下log:
ORA-01122: database file 201 failed verification check


还是做一下datafile 的check 吧:


SQL> alter system check datafiles;


System altered.


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery



SQL> alter database open;


Database altered.


SQL> select * from v$tempfile;


no rows selected


把原来的存在的文件:temp01.dbf 删除,重建:


SQL> alter tablespace temp add tempfile '/u02/ezhou/temp01.dbf' size 100m;


Tablespace altered.


好,现在database open, temp文件也有了。