ORA-00376: 此时无法读取文件 4
ORA-01110: 数据文件 4: 'D:\APP\WJ\ORADATA\ORCL11G\USERS01.DBF'
昨天删除了一些数据文件,现在找不到数据文件.
1.检查数据文件状态
SQL> select file#,name,status from v$datafile;
FILE# NAME STATUS
---------- -------------------------------------------------------------------------------- -------
1 D:\APP\WJ\ORADATA\ORCL11G\SYSTEM01.DBF SYSTEM
2 D:\APP\WJ\ORADATA\ORCL11G\SYSAUX01.DBF ONLINE
3 D:\APP\WJ\ORADATA\ORCL11G\UNDOTBS01.DBF ONLINE
4 D:\APP\WJ\ORADATA\ORCL11G\USERS01.DBF OFFLINE
5 D:\APP\WJ\ORADATA\ORCL11G\EXAMPLE01.DBF ONLINE
12 D:\APP\WJ\ORADATA\ORCL11G\USERS02.DBF RECOVER
发现数据文件4脱机,数据文件12是recover状态
2.将数据文件4联机
SQL> alter database datafile 4 online;
Database altered
3.用RMAN恢复数据文件12
RMAN> recover datafile 12;
正在开始介质的恢复
线程 1 序列 4 的归档日志已作为文件 D:\WJARC00004_0853710748.001 存在于磁盘上
线程 1 序列 5 的归档日志已作为文件 D:\WJARC00005_0853710748.001 存在于磁盘上
线程 1 序列 6 的归档日志已作为文件 D:\WJARC00006_0853710748.001 存在于磁盘上
......................
介质恢复完成, 用时: 00:00:04
完成 recover 于 21-8月 -14
4.再次检查数据文件状态
SQL> select file#,name,status from v$datafile;
FILE# NAME STATUS
---------- -------------------------------------------------------------------------------- -------
1 D:\APP\WJ\ORADATA\ORCL11G\SYSTEM01.DBF SYSTEM
2 D:\APP\WJ\ORADATA\ORCL11G\SYSAUX01.DBF ONLINE
3 D:\APP\WJ\ORADATA\ORCL11G\UNDOTBS01.DBF ONLINE
4 D:\APP\WJ\ORADATA\ORCL11G\USERS01.DBF ONLINE
5 D:\APP\WJ\ORADATA\ORCL11G\EXAMPLE01.DBF ONLINE
12 D:\APP\WJ\ORADATA\ORCL11G\USERS02.DBF OFFLINE
发现数据文件12脱机
把数据文件12联机,再检查数据文件12状态
SQL> alter database datafile 12 online;
Database altered
SQL> select file#,name,status from v$datafile where file#=12;
FILE# NAME STATUS
---------- -------------------------------------------------------------------------------- -------
12 D:\APP\WJ\ORADATA\ORCL11G\USERS02.DBF ONLINE
至此问题解决.
总结一下:
这个故障的处理非常简单,主要是熟悉一下该问题的流程:
1.既然数据文件不能访问,首先要检查数据文件状态以及数据文件是否在磁盘上.
2.如果数据文件只是offline,则只需要把数据文件脱机即可;如果数据文件丢失或RECOVER状态,就要执行恢复,然后再online.
注意:要及时备份数据库