各位学习Oracle童鞋们,你们有没有遇到下面这种情况?当我们正常启动Oracle服务器,通过PL/SQL连接数据库的时候。报如下错误:ORA-01033:ORACLE initialization or shutdown in progress
下面我们一起来分析下错误原因以及提供解决方案。
01
错误原因分析
在Oracle中删除文件就会发现,很多关联性的东西丢失直接导致严重后果就是Oracle启动不了;PL客户端登陆不进去;发现会报出这样的错误。
显然问题提示问题说明是在数据库初始化时出现了问题;
大家应该都清楚,我们在创建Oracle表空间的时候,会在我们的磁盘空间上产生对应的数据文件,如下图所示:
产生这个错误的主要原因是因为大部分同学一段时间没有去使用Oracle,那么很多同学会去清理我们的磁盘空间,发现这些文件貌似没有直接使用,认为它们是无用的文件而直接删除。这样就会导致我们下次在使用PL/SQL连接数据库的时候报如上错误。
02
解决方法
方法一
如果我们能从回收站找回被删除的文件,放置在原来的位置,重新启动服务,再次登录是可以的。
前提:是我们能全部找到被删除的文件,且文件未被损坏。
方法二
以上方法对于大部分同学而言,可能不适用。因为大家有一个习惯,喜欢清理回收站。那么我们采取下面方法:
第一步
这是由于数据库Oracle在初始化时,产生的错误;必须使用cmd命令模式进行操作;
开始--程序--运行--输入cmd 回车(也可以按下win+r,迅速的进入命令行模式;命令操作)
第二步
输入sqlplus /nolog
第三步
输入:connect sys/change_on_install as sysdba
注意:用户名我们使用sys(安装oracle数据库后会默认提供),密码是我们在安装的时候指定的,每个人在安装时设置的密码可能不一致
第四步
输入:shutdown normal
此时Oracle例程已经关闭。
第五步
输入 startup mount
第六步
输入alter database open;
此时我们可以看到,是因为我们删除了D盘下的TS_JA0702.DBF文件所导致的错误
那么由于我们文件已经被删除了,我们应该将对应的逻辑名称也删除。
执行下面命令
alter database datafile 6 offline drop;
注意:数字6是根据提示信息来确定的
再次执行 alter database open;
直到不报错误为止。
注意:有可能不止一个文件被删除,所以需要重复执行第六步操作。
第七步
上面问题解决后,再次使用PL/SQL登录数据库。发现问题解决了
03
总结
建议大家如果要清理文件的化,一定要确定此文件是否还有用,如果我们实在要删除表空间,建议大家使用SQL语句删除,而不是直接删除文件。