Oracle误删数据文件后出现oracle initialization or shutdown in progress解决

2018-01-10 20:05:34来源:cnblogs.com作者:小志程序员人点击

分享

一、错误分析

  1、首先本人在出现这种情况的背景是执行如下SQL语句后生成的表空间

 1 --自定义表空间    数据表空间  临时表空间 2 CREATE TEMPORARY TABLESPACE HOUSE_TEMP 3          TEMPFILE 'D:/OracleData/HOUSE_TEMP.DBF' 4          SIZE 32M 5          AUTOEXTEND ON 6          NEXT 32M  7          MAXSIZE 2G 8          EXTENT MANAGEMENT LOCAL; 9          10 CREATE TABLESPACE HOUSE_DATA11          LOGGING12          DATAFILE 'D:/OracleData/HOUSE_DATA.DBF'13          SIZE 32M14          AUTOEXTEND ON15          NEXT 32M 16          MAXSIZE UNLIMITED17          EXTENT MANAGEMENT LOCAL;

    但!!!有时候因为你的表空间名和文件名不那么友好。这时候你很愉快的使用shirt+delete永久删除(当然,这是我的习惯,如果删除回回收站直接还原就没有那么多麻烦事了)。

    那如果这样子你会发现你再次重新连接回Oracle的时候,恭喜你,遇到好东西,报错——ORA-01033: ORACLE initialization or shutdown in progress

    如果出现这个错误,如果你是大牛,你很淡定的解决掉了。可是!!!!你如果跟我一样是一个刚入门的菜鸟,你会紧张到怀疑人生,毕竟对于Oracle配置的错误,你只能说OMG。

    别慌,小志带你上车,亲测有效。

  2、解决办法

    a:首先尝试使用Oracle的例用线程操作数据库

1 #此为cmd命令,使用管理员运行2 sqlplus /nolog

    b:使用sysdba角色连接

1 SQL> user/ui as sysdba

    c:使用如下命令删除你的表空间

1 SQL> alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;2 SQL> alter database open;3 SQL> drop tablespace CTBASEDATA;

    d:使用以上指令重复使用直到提示你的那个数据文件不存在

    e:在使用这个例程后记得退出你的例程,不然你就gg

SQL > exit

   3、再次连接后发现你能够连接数据库了,是不是很嗨森,别急,你查看下你的原来的文件夹,虽然删除了你的数据文件,但是你的临时文件还存在。带有*temp.DBF的文件,这是你创建的临时表空间,记得同时删除掉,在命令行使用如下指令删除

SQL > alter database tempfile '你临时文件路径' drop including datafiles

  4、删除完最好重启下电脑,这样Oracle就可以安全使用了,最后嘱咐大家,数据有风险,建表需谨慎。

附:

创建用户指令

--创建用户CREATE USER HOUSE IDENTIFIED BY  HOUSE_DATADEFAULT TABLESPACE HOUSE_DATATEMPORARY TABLESPACE HOUSE_TEMP;

修改用户密码指令

alter user 用户名 identified by 新密码

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台