Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法Windows版(手贱强制重启电脑的后果)

今天中午连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中的内容

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>lsnrctl stop

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 06-6月 -2018 20:4
6:42

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
命令执行成功

C:\Users\Administrator>lsnrctl start

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 06-6月 -2018 20:4
7:00

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

启动tnslsnr: 请稍候...

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
系统参数文件为D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listene
r.ora
写入d:\app\administrator\diag\tnslsnr\3BAZ7JK7QG9VRB0\listener\alert\log.xml的日
志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  06-6月 -2018 20:47:05
正常运行时间              0 天 0 小时 0 分 5 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\app\Administrator\product\11.2.0\dbhome_1\network\a
dmin\listener.ora
监听程序日志文件          d:\app\administrator\diag\tnslsnr\3BAZ7JK7QG9VRB0\list
ener\alert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

C:\Users\Administrator>

 

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

 

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

    

    

    

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

    

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

    

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

 

后记

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

参考资料:

Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决办法

ora-01033:oracle initializationg or shutdown in progress解决方法

ORA-00600[kcratr_nab_less_than_odr]故障解决

[Oracle]startup mount时报ORA-12514错误的解决方法

非正常关机,oracle启动报错,要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 

ORA-01589错误 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

ORA-01589错误

ORA 01589问题处理记录

  • 12
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值