问题描述:将先创建好的数据库的表空间文件(dbf文件)直接删除掉(正确删除表空间的办法是用drop命令)。后来,重新创建数据库表空间时,提示表空间已存在,但又由于dbf文件损坏,也无法用drop命令来删除掉表空间了。
解决方案 解决办法是:
用sqlplus /nolog命令进入:
sql>conn /as sysdba
sql>startup mount;(数据库已启动则不需要此命令)
sql>alter database datafile ''C:\TEST.ORA'' offline
drop;
sql>drop tablespace test;
一切ok,重启数据库即可。
错误如下:
ORA-01116:error in opening database file 54
ORA-01110:data file
54:'/home3/datafile/arrange/NewArrange.dbf'
ORA-27041:unable to open file
Linux Error:2: No Such file or directory
Additional information: 3
经过查看的确没有 '/home3/datafile/arrange/NewArrange.dbf'
该文件了,现在数据库还在启动状态,是不是关闭数据库再重启的时候将不能正常启动
解决方案:解决办法:
1、是否有备份?备份方式是怎样的?如果备份做的好那余下的就不有说的,restore,recover就ok了。
2、'/usr/oracle/oradata/test.dbf'这个文件是否重要?是否有重要的数据?因还在启动状态,可以自己查一下:
select * dba_extents where file_id=54;
3、如果这个数据文件没有用,或是其中的数据不重要,可以offline drop掉,问题就解决掉了。
alter database
datafile '/usr/oracle/oradata/test.dbf'
offline drop;
如果open执行不成功,则在startup mount状态执行。
4、问题不处理掉,库如果重启是open不了的。