修复由于断电引起的Oracle数据库的异常:[ORA-01033: Oracel正在初始化或关闭]
前段时间由于搬数据库服务器,再加上数据库电源接触不良,几次开关机后,导致:
登录SQLplus时报了一个异常:
环境是Windows Server 2003操作系统,Oracle 11g。我的解决方法是这样的:
打开命令行界面,输入sqlplus system/sys as sysdba
以管理员方式登录
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Berlin>sqlplus system/sys as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期五 6月 15 17:15:28 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
#
输入命令`startup mount`载入数据库,然而报出“**ORA-01081: 无法启动已在运行的 ORACLE - 请先将其关闭**”提示语句。所以使用命令`shutdown immediate`卸载数据库,然后在装载。这个过程需要耗费一点时间,耐心等待。
SQL> startup mount
ORA-01081: 无法启动已在运行的 ORACLE - 请先将其关闭
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 3841982464 bytes
Fixed Size 8753768 bytes
Variable Size 889195928 bytes
Database Buffers 2936012800 bytes
Redo Buffers 8019968 bytes
数据库装载完毕。
#
输入alter database open;
命令。如果出现错误提书“ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项”,那么使用命令alter database open resetlogs;
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01245: RESETLOGS 完成时脱机文件 1 将丢失
ORA-01110: 数据文件 1: 'C:\APP\BERLIN\ORACLEDB\ORADATA\ORCL\SYSTEM01.DBF'
错误提示“ORA-01245: RESETLOGS 完成时脱机文件 1 将丢失”,是我之前错误的把datafile 1
给offline
了((:зゝ∠))。所以先要把它给online
一下,然后再输入alter database open resetlogs;
:
SQL> alter database datafile 1 online;
数据库已更改。
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
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;
SQL> recover database using backup controlfile;
ORA-00279: 更改 18478439 (在 05/29/2018 23:44:10 生成) 对于线程 1 是必需的
ORA-00289: 建议:
C:\APP\BERLIN\ORACLEDB\RECOVERY_AREA\ORCL\ARCHIVELOG\2018_06_15\O1_MF_1_412_%U_.
ARC
ORA-00280: 更改 18478439 (用于线程 1) 在序列 #412 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
命令行现在等待你输入日志文件。我参考的是这个办法: ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项。办法是打开日志所在的文件夹,然后依次匹配。
在我的电脑上,这个文件夹路径是C:\app\Berlin\oracleDB\oradata\orcl
从REDO01.LOG
到REDO03.LOG
依次尝试,我运气好,REDO01.LOG
就是我要找的文件:
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
C:\app\Berlin\oracleDB\oradata\orcl\REDO01.LOG
已应用的日志。
完成介质恢复。
现在,再次键入命令alter database open resetlogs;
,这样我的就OK了:
SQL> ALTER DATABASE OPEN RESETLOGS;
数据库已更改。
现在,打开SQLplus,就可以登录啦 :-):
请输入用户名: SCOTT
输入口令:
上次成功登录时间: 星期六 5月 26 2018 13:32:11 +08:00
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
还没有评论,来说两句吧...