昨天不小心把创建的表空间的.dbf文件在虚拟机中用rm命令将其删除。以至于该表空间用drop tablespace tablespacename including contents 删不掉。
启动数据库时出现database not open ,在网上找了很久才将将其解决,故在此整理,已给后来像我这样地初学者以方便。
当时想到解决方法有两个,一个从恢复linux下rm删除的文件着手,找了一下,发现恢复ext3 格式硬盘下rm删除的的文件很麻烦,所以就放弃了,第二个就是从数据库着手。具体解决方法如下,
1、用sqlplus / as sysdba用户登录数据库。
2、shutdown immediate 关闭数据库服务。
3、startup mount
5、alter database datafile '/home/oracle/oradata/trade/trade.dbf' offline drop;
6.alter database open;
7、把出错的表空间删掉:drop tablespace tablespacename including contents
至此问题完美解决。