oracle 表空间文件异常offline

今天在登录oracle hr的时候,做select,报错“ORA-00376”,数据文件不能读写。用下面的语句看了下status,发现example表空间(FILE# 6)处于OFFLINE状态。

1 select file#,status from v$datafile;
     FILE# STATUS
---------- ---------------------

         1 SYSTEM

         2 ONLINE

         3 ONLINE

         4 ONLINE

         5 ONLINE

         6 OFFLINE

用下面语句使表空间文件online。 

1  alter database datafile '/....../example.dbf' online;

之后发现,还是报错“ORA-00376”,问题似乎没有解决,原来是表空间没有online的原因,虽然这时候表空间文件已经online了。用下面的语句3使表空间online,然后用语句1使表空间可读写。至此问题解决。

1 alter tablespace example read write;
2 alter tablespace example read only;
3 alter tablespace example online;

在实际操作中,我是先用语句1和2的,当时并未理解表空间文件online和表空间online是两回事,但是语句1和2的提示完全不同,分别如下:

ORA-01646: 表空间 'EXAMPLE' 不是只读的 - 无法设置为读写
ORA-01539: 表空间 'EXAMPLE' 未联机

似乎语句2的提示更加准确,看来,dba在不清楚情况下的操作一定要尽量的细粒度操作来发现问题。

原文地址:https://www.cnblogs.com/valleylord/p/2908673.html