共计 1498 个字符,预计需要花费 4 分钟才能阅读完成。
一、错误分析
1、首先本人在出现这种情况的背景是执行如下 SQL 语句后生成的表空间
– 自定义表空间 数据表空间 临时表空间
CREATE TEMPORARY TABLESPACE HOUSE_TEMP
TEMPFILE ‘D:\OracleData\HOUSE_TEMP.DBF’
SIZE 32M
AUTOEXTEND ON
NEXT 32M
MAXSIZE 2G
EXTENT MANAGEMENT LOCAL;
CREATE TABLESPACE HOUSE_DATA
LOGGING
DATAFILE ‘D:\OracleData\HOUSE_DATA.DBF’
SIZE 32M
AUTOEXTEND ON
NEXT 32M
MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
但!!!有时候因为你的表空间名和文件名不那么友好。这时候你很愉快的使用 shirt+delete 永久删除(当然,这是我的习惯,如果删除回回收站直接还原就没有那么多麻烦事了)。
那如果这样子你会发现你再次重新连接回 Oracle 的时候,恭喜你,遇到好东西,报错——ORA-01033: ORACLE initialization or shutdown in progress
如果出现这个错误,如果你是大牛,你很淡定的解决掉了。可是!!!!你如果跟我一样是一个刚入门的菜鸟,你会紧张到怀疑人生,毕竟对于 Oracle 配置的错误,你只能说 OMG。
别慌,小志带你上车,亲测有效。
2、解决办法
a:首先尝试使用 Oracle 的例用线程操作数据库
# 此为 cmd 命令,使用管理员运行
sqlplus /nolog
b:使用 sysdba 角色连接
SQL> user/ui as sysdba
c:使用如下命令删除你的表空间
SQL> alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;
SQL> alter database open;
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_DATA
DEFAULT TABLESPACE HOUSE_DATA
TEMPORARY TABLESPACE HOUSE_TEMP;
修改用户密码指令
alter user 用户名 identified by 新密码
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150232.htm