日期:2014-05-17  浏览次数:20853 次

误删了oracle的临时表空间后就出现数据库未打开

SQL>  alter database datafile 'h:\oracle\epet.dbf' offline drop;

数据库已更改。

SQL> create tablespace epets
  2  datafile 'h:\oracle\epet.dbf'
  3  size 5M;
create tablespace epets
*
第 1 行出现错误:
ORA-01109: 数据库未打开


SQL>


------最佳解决方案--------------------
这是因为数据库加载完了,也就是mount了。此时,数据库会检查所有的数据文件等,因为你把临时的表空间删了,所以数据库不会进行接下来的打开即open了。解决方法,先把数据库的服务和监听都打开,然后以sys用户登录。
alter database mount;  使数据库加载
执行‘alter database datafile 临时表空间对应的数据文件 offline drop', 删除临时表空间的数据文件
alter database open;  打开数据库。这就可以正常登录了
------其他解决方案--------------------
引用:
SQL>  alter database datafile 'h:\oracle\epet.dbf' offline drop;

数据库已更改。

SQL> create tablespace epets
  2  datafile 'h:\oracle\epet.dbf'
  3  size 5M;
create tablespace epets
*
第 1 行出现错误:
……


重新连接啊
临时表空间在排序、hash join或者其他运用时才用到
可以没有
conn / as sysdba
试试
------其他解决方案--------------------
可以手动创建一个临时表空间
create TEMPORARY TABLESPASE TEMP01 TEMPFILE 'TEMP01.DBF' SIZE 100M AUTOEXTEND ON;