昨天晚上犯贱,拿表空间的物理文件直接删除了,而且清空了回收站。
还好在自己又备份了数据库,要不然都不知道到哪里哭去!
问题:
删了表空间之后,什么事情都做不了了,老是报数据库未打开!
- 第 1 行出现错误:
- ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
解决方法:
startup mount;
alter session set nls_language=american;
alter database datafile 'd:\test.dmp' offline drop; //这里的就是你误删的表空间文件的路径加名字
alter database open;
conn system/manager as sysdba;
drop user xxx cascade;
这个时候如果你之前设定的是默认的表空间的话,删除用户是不能连带默认表空间也删除的。
所以,我们需要先新建一个表空间,然后设定了默认的,然后删除以前的,之后再改回来删除刚刚建的!
create tablespace test datafile 'D:oracle/product\10.2.0\test.dmp' size 1G;
alter database default tablespace test;
drop tablespace xxxx including contents and datafiles;
这样你就可以连接数据库了,再也不报数据库未打开了。你就可以删除掉用户之后把备份数据库还原了。
但是,如果你不备份怎么办?
这也是有法子的,法子就是百度下解决方法,不过比较麻烦的了!
命好有备份,要不怎么找苦吃,以后不能随便乱删除这些文件了!