今天中午连Oracle调试程序,电脑太卡了,一气之下强制关机,再连Oracle的时候吓傻了,捣鼓了一下午,刚才总算是弄好了,提醒各位程序连Oracle的时候千万别强制关机!都是手贱惹的祸!下面开始讲解决办法。

 

 

电脑强制重启后,打开Oracle登录,提示如下:

造成ORA-01033的原因有很多,比如断电、电脑强制重启,或者数据库文件误删等,这些导致oracle要么卡在初始化中,要么关闭了,我们要做的就是重启它。

一.检查oracle服务是否启动。

    如果没有启动,就手动开启。如果启动,手动重启后,再尝试连接Oracle。(看到网上有说重启好了的,姑且提醒一下各位,说不定碰巧解决了呢)

 

    在下面内容开始之前,本人测试发现,当时程序连接的是orcl的实例,只有以orcl连接时才提示“ORA-01033”错误,其他连接没有影响,下面的操作其实就是为了修复orcl并重启。

二.检查注册表oracle实例

    打开regedit,在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1中检查ORACLE_SID是否为orcl。(看网上的意思是要修改成报错的实例名?)

三.利用cmd命令重启数据库

    1.打开cmd,以管理员身份登录orcl。

 

 

    2.尝试打开数据库 alter database open,提示“ORA-00600”错误。ORA-00600[kcratr_nab_less_than_odr]故障解决,从这篇文章大致得出,数据库需要恢复到rba到70153,但是因为某种原因实例恢复的时候,只能利用1 thread 329 seq#,恢复rba到70139,从而导致数据库无法正常open。

    3.接着根据2中的文章提示,输入recover database until cancel 尝试不完全恢复,可以看到返回四条错误,这里大致是说,恢复成功,但有一个文件SYSTEM01.DEF没有从旧的备份中恢复,打到这里的时候本人当时不明白,也就没有在意,后来才发现其实这里是说的介质恢复,把这个文件恢复了,数据库就能正常打开了(后面操作了那么多,还是回到了这个文件上)。

    4.关闭重启数据库。输入 shutdown immediate(或shutdown normal) startup nomount,又报ORA-12514错误。可参考[Oracle]startup mount时报ORA-12514错误的解决方法。

    这里再将文章中的内容描述一下:

        找到listener.ora文件,添加如下红框中的内容:

    

 

    在cmd中,输入“lsnrctl stop”“lsnrctl start”重启侦听服务,下面是cmd中的内容

 

上面其实就两句话:lsnrctl stop 和 lsnrctl start,但要注意不是在sql中输入,如果在cmd中登录oracle,需要exit退出后,才能执行,且不要输入“;”(不要被上面文章中的格式误导),这样监听就修复好了。

    5.再次登录orcl实例,启动数据库后,可以看到例程已经启动。之后本人重复 shutdown 和startup,后提示“装载完毕”,输入打开命令后,提示“ORA-01589”异常。

 

 

6.介质恢复。关于“ORA-01589”可参考非正常关机,oracle启动报错,要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项https://blog.csdn.net/diquren/article/details/51911159 和 ORA-01589错误 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项https://blog.csdn.net/wangshengfeng1986211/article/details/6104662。两文章都表明了用日志文件恢复的办法。

按照文章中的提示输入,alter database open resetlogs 果然提示有一个文件需要介质恢复,正是上面3中提到的SYSTEM01.DEF,接着到输入指定日志的地址,如果不知道日志在哪,可以去参考的SYSTEM01.DEF目录下,如下图,可以看到有.LOG后缀的日志文件,未恢复的情况下,修改时间是不同的,找最新的文件即可,未恢复前时间最新的是REDO02.LOG。按照提示输入完成。

控制台提示“数据库已更改”,这样,数据库就可以登录了。虽说手贱本可以避免,但能解决问题,学到知识还是可喜可贺的。

后记

有时候用PL/SQL登录时,会出现连接界面未响应或提示监听程序未启动等,打开服务,可以看到Oracle当前已启动的服务,重启一遍,如果遇到重启失败的情况,可尝试注销后再重启。


————————————————
版权声明:本文为CSDN博主「rrrrroy_Ha」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rrrrroy_Ha/article/details/80601497

 

 

 

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐