记一次 oracle 数据库在宕机后的恢复
系统:redhat 6.6
oracle版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
问题描述:宕机后,使用 sqlplus 登陆发现:
Oracle ORA-01033: ORACLE initialization or shutdown in progress
即,数据库未正常打开。
问题排查:
由于非正常关机,数据库需要恢复。遂Bd一下:https://www.cnblogs.com/wangsaiming/p/3688141.html,
根据文章,执行:
sqlplus \nolog #不指定登陆用户
SQL> conn / as sysdba #指定以sysdba 登陆
报错:
ORA-01031: insufficient privileges
继续Bd:https://blog.csdn.net/dsc1245/article/details/69524584,根据文章说明,sysdba登陆需要满足:
- 当前 linux 用户为 oracle, 在 oinstall, dba 组中。
- 当前 linux 用户的环境变量中有 ORACLE_HOME 与 ORACLE_SID
- 在 ORACLE_HOME/network/admin/sqlnet.ora中,不能有 :
-
sqlnet.authentication_services=(nts) #window下使用, linux 下不指定或为 ALL
-
在满足以上条件后,可顺利登陆。
根据文章 :http://blog.itpub.net/28602568/viewspace-762369/ 中的步骤,执行:
SQL> select open_mode from v$database; OPEN_MODE -------------------- MOUNTED # 说明 oracle 卡在 mount 阶段
然后,手动重启报错:
SQL> shutdown ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 941600768 bytes Fixed Size 1340440 bytes Variable Size 708840424 bytes Database Buffers 226492416 bytes Redo Buffers 4927488 bytes Database mounted. ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr], [], [], [], [], [], [], [], [], [], [], []
Bd 此错误:ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr ,按文章 https://blog.csdn.net/muzi1314_/article/details/54587970
指引可完成恢复。
SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE #出现此输出说明可使用 sqlplus 正常登陆
问题解决,完毕。
其它文章:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步