处理Oracle数据库的“ORA-01033:Oracel initialization or shutdown in progress”故障

Oracel数据库在非正常关机的情况下,可能导致控制文件、数据库文件或日志文件受损,出现数据库不能正常装载错误。本文通过Oracle提供的系统恢复命令来进行修复,恢复数据库的正常装载。原单位使用的OA系统使用的数据库为Oracel 9,在一次硬盘故障更换后,出现ORA-01033:Oracel initialization or shutdown in progress错误提示。
处理过程
以下为通过命令行恢复控制文件和进行介质恢复的过程:
C:\Documents and Settings\Administrator>sqlplus /NOLOG
SQL> connect dsoa/dreamsoft as sysdba
SQL> shutdown immediate
SQL> startup mount

ORACLE 例程已经启动。
Total System Global Area 2351509956 bytes
Fixed Size 459204 bytes
Variable Size 536870912 bytes
Database Buffers 1811939328 bytes
Redo Buffers 2240512 bytes
ORA-00214: ???? 'D:\ORACLE\ORADATA\DSOA\CONTROL01.CTL' ?? 5062 ???
'D:\ORACLE\ORADATA\DSOA\CONTROL02.CTL' ?? 5053 ???
SQL> shutdown immediate
提示CONTROL01.CTL、CONTROL02.CTL发生错误由于Oracel的控制文件是做了冗余,同时存在3个一样的控制文件,当有一个控制文件因某种原因出错时,便会提示告警。因此在做好备份前,将选中一个复制并改名为其余两个来保证三个文件一样。

SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2351509956 bytes
Fixed Size 459204 bytes
Variable Size 536870912 bytes
Database Buffers 1811939328 bytes
Redo Buffers 2240512 bytes
数据库装载完毕。
ORA-01113: 文件 2 需要介质恢复
ORA-01110: 数据文件 2: 'D:\ORACLE\ORADATA\DSOA\UNDOTBS01.DBF'
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 2351509956 bytes
Fixed Size 459204 bytes
Variable Size 536870912 bytes
Database Buffers 1811939328 bytes
Redo Buffers 2240512 bytes
数据库装载完毕。
SQL> recover datafile 2
ORA-00279: 更改 471567853 (在 11/24/2012 21:38:30 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC01546.001
ORA-00280: 更改 471567853 对于线程 1 是按序列 # 1546 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC01546.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> alter database datafile 'd:\oracle\oradata\dsoa\undotbs01.dbf' offline ;
alter database datafile 'd:\oracle\oradata\dsoa\undotbs01.dbf' offline
*
ERROR 位于第 1 行:
ORA-01145: 除非启用了介质恢复,否则不允许紧急脱机

SQL> alter database datafile 'd:\oracle\oradata\dsoa\undotbs01.dbf' offline drop;
数据库已更改。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01113: 文件 9 需要介质恢复
ORA-01110: 数据文件 9: 'D:\ORACLE\ORADATA\DSOA\USERS01.DBF'

SQL> recover datafile 9;
完成介质恢复。
SQL> shutdown immediate
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 2351509956 bytes
Fixed Size 459204 bytes
Variable Size 536870912 bytes
Database Buffers 1811939328 bytes
Redo Buffers 2240512 bytes
数据库装载完毕。
数据库已经打开。
SQL>

你可能感兴趣的:(oracle,数据库,故障)