Q:
这个错误我觉得对于初学者来说还是有很大机会犯的,问题是这样的,
这一天,我照常启动OracleOra11g_home1TNSListener和OracleServiceORCL 两个服务,然后进入PL/SQL,登录,输入用户名和密码后提示,数据库未打开,我又确定了一下用户名和口令,没错啊!再次登陆,显示oracle进程可能被关闭的错误提示,于是我估计可能是PL/SQL软件的问题,切换到sqlplus模式,在运行里敲sqlplus,输入用户名和密码,依然提示:数据库未打开,我又重启了一遍一开始启动的两个服务,问题依旧,有点慌遂决定网上寻求帮助,恰巧在一个IT论坛上看到一个和我一样问题的银,他是在windows下将数据库文件删除后出现的错误,我一想,自己在前些天“大清理”的时候也删除过,当时以为没事没想到可能就是这个问题造成的。于是我照着下面高手的回答做后,果然问题解决了,
下面给出具体操作步骤:希望有此问题的同志也能按照此步骤化解心中的纠结:
A:
1、首先连接到oracle的mount模式,用sys账户登录就进去了,
2、输入alter空格database空格open;
3、稍等后会看到被你删除的或出问题的那个数据库文件,记住这个路径和文件名或直接标记后复制下来。
4、运行cmd(切忌,不是sqlplus)后,在DOS窗口下输入sqlplus/nolog,没空格。
5、connect空格/空格as sysdba
6、这是提示已连接的同志继续,输入:alter空格database空格datafile '这里是你出问题或被你删除的数据库文件名(开头必须包含路径比如:D:)' offline空格drop;后会提示"数据库已更改"。
7、再次输入:alter database open;后会提示"数据库已更改"。
8、输入:drop tablespace 出问题的数据库文件名(不包含后缀名如:BOOK.DBF就输入BOOK就行了)。后会提示"表空间已删除"。
9、好了输入:conn 用户名/密码,回车后提示"已连接",好了搞定了!
下面给出全部命令(方便大家复制粘贴):
Step 1:SQL>C:\Users\Administrator\sqlplus/nolog
Step 2:SQL>conn / as sysdba
Step 3:SQL>alter database datafile 'x:xxx.dbf' offline drop;
Step 4:SQL>alter database open;
Step 5:SQL>drop tablspace xxx;
S:
总结一下:下次删除数据库文件不要在windows直接删除,不然oracle启动是会发现打不开数据库而报告错误,正确的做法你懂的,drop一下就好了。建议在某个盘下建一个专门存放数据库文件的文件夹比较好(惭愧:我就是胡乱堆在D盘下的)。
友情链接:
关于此问题还有一个博主写过相关文章:
http://blog.csdn.net/junmail/archive/2009/12/26/5081714.aspx ,里面有更加详细的介绍。