修复由于断电引起的Oracle数据库的异常:[ORA-01033: Oracel正在初始化或关闭]

逃离我推掉我的手 2023-06-07 03:16 23阅读 0赞

前段时间由于搬数据库服务器,再加上数据库电源接触不良,几次开关机后,导致:

登录SQLplus时报了一个异常:

20191012145901753.png

环境是Windows Server 2003操作系统,Oracle 11g。我的解决方法是这样的:

打开命令行界面,输入sqlplus system/sys as sysdba以管理员方式登录

  1. Microsoft Windows [版本 6.1.7601]
  2. 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
  3. C:\Users\Berlin>sqlplus system/sys as sysdba
  4. SQL*Plus: Release 12.2.0.1.0 Production on 星期五 6 15 17:15:28 2018
  5. Copyright (c) 1982, 2016, Oracle. All rights reserved.
  6. 连接到:
  7. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

#

  1. 输入命令`startup mount`载入数据库,然而报出“**ORA-01081: 无法启动已在运行的 ORACLE - 请先将其关闭**”提示语句。所以使用命令`shutdown immediate`卸载数据库,然后在装载。这个过程需要耗费一点时间,耐心等待。
  2. SQL> startup mount
  3. ORA-01081: 无法启动已在运行的 ORACLE - 请先将其关闭
  4. SQL> shutdown immediate
  5. ORA-01109: 数据库未打开
  6. 已经卸载数据库。
  7. ORACLE 例程已经关闭。
  8. SQL> startup mount
  9. ORACLE 例程已经启动。
  10. Total System Global Area 3841982464 bytes
  11. Fixed Size 8753768 bytes
  12. Variable Size 889195928 bytes
  13. Database Buffers 2936012800 bytes
  14. Redo Buffers 8019968 bytes
  15. 数据库装载完毕。

#

输入alter database open;命令。如果出现错误提书“ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项”,那么使用命令alter database open resetlogs;

  1. SQL> alter database open;
  2. alter database open
  3. *
  4. 1 行出现错误:
  5. ORA-01589: 要打开数据库则必须使用 RESETLOGS NORESETLOGS 选项
  6. SQL> alter database open resetlogs;
  7. alter database open resetlogs
  8. *
  9. 1 行出现错误:
  10. ORA-01245: RESETLOGS 完成时脱机文件 1 将丢失
  11. ORA-01110: 数据文件 1: 'C:\APP\BERLIN\ORACLEDB\ORADATA\ORCL\SYSTEM01.DBF'

错误提示“ORA-01245: RESETLOGS 完成时脱机文件 1 将丢失”,是我之前错误的把datafile 1offline了((:зゝ∠))。所以先要把它给online一下,然后再输入alter database open resetlogs;

  1. SQL> alter database datafile 1 online;
  2. 数据库已更改。
  3. SQL> alter database open resetlogs;
  4. alter database open resetlogs
  5. *
  6. 1 行出现错误:
  7. ORA-01113: 文件 1 需要介质恢复
  8. ORA-01110: 数据文件 1: 'C:\APP\BERLIN\ORACLEDB\ORADATA\ORCL\SYSTEM01.DBF'

参考:system01.dbf文件被offline,导致数据库报ORA-01245 ORA-01110故障

#

现在,它提示“ORA-01113: 文件 1 需要介质恢复”。输入命令recover database using backup controlfile;

  1. SQL> recover database using backup controlfile;
  2. ORA-00279: 更改 18478439 (在 05/29/2018 23:44:10 生成) 对于线程 1 是必需的
  3. ORA-00289: 建议:
  4. C:\APP\BERLIN\ORACLEDB\RECOVERY_AREA\ORCL\ARCHIVELOG\2018_06_15\O1_MF_1_412_%U_.
  5. ARC
  6. ORA-00280: 更改 18478439 (用于线程 1) 在序列 #412 中
  7. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

命令行现在等待你输入日志文件。我参考的是这个办法: ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项。办法是打开日志所在的文件夹,然后依次匹配。

在我的电脑上,这个文件夹路径是C:\app\Berlin\oracleDB\oradata\orcl

format_png

REDO01.LOGREDO03.LOG依次尝试,我运气好,REDO01.LOG就是我要找的文件:

  1. 指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
  2. C:\app\Berlin\oracleDB\oradata\orcl\REDO01.LOG
  3. 已应用的日志。
  4. 完成介质恢复。

现在,再次键入命令alter database open resetlogs;,这样我的就OK了:

  1. SQL> ALTER DATABASE OPEN RESETLOGS;
  2. 数据库已更改。

现在,打开SQLplus,就可以登录啦 :-):

  1. 请输入用户名: SCOTT
  2. 输入口令:
  3. 上次成功登录时间: 星期六 5 26 2018 13:32:11 +08:00
  4. 连接到:
  5. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
  6. SQL>

发表评论

表情:
评论列表 (有 0 条评论,23人围观)

还没有评论,来说两句吧...

相关阅读