`
xuela_net
  • 浏览: 496940 次
文章分类
社区版块
存档分类
最新评论

ORA-00376:file x cannot be read at this time

 
阅读更多

之前出现过机房断电情况,重启数据库后发现出现ORA-00376的错误。

通过查询数据文件状态:

SQL> select file_id,online_status from dba_data_files order by 1;

FILE_ID ONLINE_STATUS
---------- -------------
1 SYSTEM
2 ONLINE
3 ONLINE
4 ONLINE
5 RECOVER
6 ONLINE
7 RECOVER
8 ONLINE
9 ONLINE
10 ONLINE
11 RECOVER
12 ONLINE
13 RECOVER
14 RECOVER
15 RECOVER
16 RECOVER

文件中出现了大量的recover的状态,需要进行介质恢复。

SQL> select file#, status, fuzzy, checkpoint_time, checkpoint_change#,
resetlogs_change#, resetlogs_time from v$datafile_header where file#=5;

FILE# STATUS FUZZY CHECKPOINT_TIME CHECKPOINT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME
---------- ------- ----- --------------- ------------------ ----------------- --------------
5 OFFLINE YES 2013-6-19 9:52: 38391683 940976 2013-5-15 19:1

当前的数据文件的SCN号为 38391683,需要寻找别这个高的archive log或redo log。

SQL> Select sequence#,name,first_change#,next_change# from v$archived_log;

SEQUENCE# NAME FIRST_CHANGE# NEXT_CHANGE#
---------- -------------------------------------------------------------------------------- ------------- ------------
465 D:\APP\ARCHIVELOG\ARC0000000465_0815512562.0001 36366097 36618224
466 D:\APP\ARCHIVELOG\ARC0000000466_0815512562.0001 36618224 36843775
467 D:\APP\ARCHIVELOG\ARC0000000467_0815512562.0001 36843775 37065721
468 D:\APP\ARCHIVELOG\ARC0000000468_0815512562.0001 37065721 37294978
469 D:\APP\ARCHIVELOG\ARC0000000469_0815512562.0001 37294978 37572830
470 D:\APP\ARCHIVELOG\ARC0000000470_0815512562.0001 37572830 37818186
471 D:\APP\ARCHIVELOG\ARC0000000471_0815512562.0001 37818186 38093499
472 D:\APP\ARCHIVELOG\ARC0000000472_0815512562.0001 38093499 38346397
473 D:\APP\ARCHIVELOG\ARC0000000473_0815512562.0001 38346397 38381157

很幸运,38391683大于473这个最大的archive log 的SCN,我不需archive log 的帮助。recover所需的信息在redo log 中。

例如:数据文件file_id5的处于recover状态,执行

alter database recover datafile 5;

依次恢复状态为recover的数据文件。

再次查看online_statusoffline状态,需要执行

Alter database datafile5 online;

依次将处于offline的数据文件ONLINE。都online后数据库处于open状态了后,就可以用了。

如果数据库处于No Archive log 状态的时候,recover所需的信息只能从redo log 中获取,如果此时的redo log被overwrite了,将不能online数据文件,那只能想其他方法了。

Possible causes and solutions summary:
=====================================

<wbr><wbr>A. Tablespace or Datafile offline.<br><wbr><wbr>B. Datafile does not exist at the OS level.<br><wbr><wbr>C. Datafile locked by Backup Software.<br><wbr><wbr>D. Incorrectly set ULIMIT on UNIX.<br><wbr><wbr>E. Rollback Segment with active transactions is unavailable<br><wbr><wbr>F. Possible Other Causes.<br><br></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics