各位学习Oracle童鞋们,你们有没有遇到下面这种情况?当我们正常启动Oracle服务器,通过PL/SQL连接数据库的时候。报如下错误:ORA-01033:ORACLE initialization or shutdown in progress

ResultSet 结果集已耗尽 结果集已耗尽解决方法_oracle 结果集已耗尽解决方法

下面我们一起来分析下错误原因以及提供解决方案。

01

错误原因分析

在Oracle中删除文件就会发现,很多关联性的东西丢失直接导致严重后果就是Oracle启动不了;PL客户端登陆不进去;发现会报出这样的错误。

显然问题提示问题说明是在数据库初始化时出现了问题;

大家应该都清楚,我们在创建Oracle表空间的时候,会在我们的磁盘空间上产生对应的数据文件,如下图所示:

ResultSet 结果集已耗尽 结果集已耗尽解决方法_oracle 结果集已耗尽解决方法_02

产生这个错误的主要原因是因为大部分同学一段时间没有去使用Oracle,那么很多同学会去清理我们的磁盘空间,发现这些文件貌似没有直接使用,认为它们是无用的文件而直接删除。这样就会导致我们下次在使用PL/SQL连接数据库的时候报如上错误。

02

解决方法

方法一

如果我们能从回收站找回被删除的文件,放置在原来的位置,重新启动服务,再次登录是可以的。

前提:是我们能全部找到被删除的文件,且文件未被损坏。

方法二

以上方法对于大部分同学而言,可能不适用。因为大家有一个习惯,喜欢清理回收站。那么我们采取下面方法:

第一步

这是由于数据库Oracle在初始化时,产生的错误;必须使用cmd命令模式进行操作;

开始--程序--运行--输入cmd 回车(也可以按下win+r,迅速的进入命令行模式;命令操作)

ResultSet 结果集已耗尽 结果集已耗尽解决方法_ResultSet 结果集已耗尽_03

第二步

输入sqlplus /nolog

ResultSet 结果集已耗尽 结果集已耗尽解决方法_oracle 结果集已耗尽解决方法_04

第三步

输入:connect sys/change_on_install as sysdba

注意:用户名我们使用sys(安装oracle数据库后会默认提供),密码是我们在安装的时候指定的,每个人在安装时设置的密码可能不一致

ResultSet 结果集已耗尽 结果集已耗尽解决方法_删除文件_05

第四步

输入:shutdown normal

ResultSet 结果集已耗尽 结果集已耗尽解决方法_数据库_06

此时Oracle例程已经关闭。

第五步

输入 startup mount

ResultSet 结果集已耗尽 结果集已耗尽解决方法_数据库_07

第六步

输入alter database open;

ResultSet 结果集已耗尽 结果集已耗尽解决方法_SQL_08

此时我们可以看到,是因为我们删除了D盘下的TS_JA0702.DBF文件所导致的错误

那么由于我们文件已经被删除了,我们应该将对应的逻辑名称也删除。

执行下面命令

alter database datafile 6 offline drop;

注意:数字6是根据提示信息来确定的

ResultSet 结果集已耗尽 结果集已耗尽解决方法_SQL_09

再次执行 alter database open;

ResultSet 结果集已耗尽 结果集已耗尽解决方法_数据库_10

直到不报错误为止。

注意:有可能不止一个文件被删除,所以需要重复执行第六步操作。

第七步

上面问题解决后,再次使用PL/SQL登录数据库。发现问题解决了

ResultSet 结果集已耗尽 结果集已耗尽解决方法_删除文件_11


03

总结

    建议大家如果要清理文件的化,一定要确定此文件是否还有用,如果我们实在要删除表空间,建议大家使用SQL语句删除,而不是直接删除文件。