ORA-01033: ORACLE initialization or shutdown in progress 因误删表空间文件导致的解决方案
原因
昨天关闭数据库后(Oracle10g),把一个已经不想用的本地表空间文件给删除了(因为太大占用好多硬盘空间)。
导致第二天连接、登录数据库时发生了异常,异常提示如下:ORA-01033: ORACLE initialization or shutdown in progress
其中文意思就是ORACLE正在初始化或关闭。很是郁闷,无奈网上搜寻。结合自己的错误,写出如下解决方案,望与大家参考分享。
导致ORA-01033问题出现的原因多种多样,但由于操作不当误删除Oralce表空间文件这种情形的比较常见。下面我就主要介绍此种情况下解决问题的办法。
解决方法
SQL*Plus无法连接,显示以下错误: ORA-01033: ORACLE initialization or shutdown in progress ,Enterprise Manager Console中也是同样的错误。
先在windows下运行cmd,进入DOS环境。
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus:Release 10.2.0.1 – Production on 星期五 10月 28 08:39:37 2011 Copyright (C) 1982,2005,Oracle. All rights reserved
SQL>conn sys@orcl as sysdba
输入口令:
已连接。
SQL>alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'F:\DATAMIS\YDYX.DBF'
SQL>alter database datafile 6 offline drop;
数据库已更改。
SQL>alter database open;
数据库已更改。
SQL>drop user ydyx cascade; 注意:这里的 ydyx 是需要使用丢失数据文件所属的 用户名
用户已删除。
SQL>drop tablespace ydyx including contents; 注意:这里的 ydyx 是丢失数据文件所属的 表空间名称(不一定与用户名同名,此处我的用户名和表空间名同名)
表空间已删除。
至此,SQL*Plus和Enterprise Manager Console等都可以正常登陆了。
接下来就是重建在问题解决过程中删除的表空间和用户。
SQL>create tablespace ydyx datafile ‘F:\datamis\ydyx.dbf’ size 100m reuse autoextend on next 10m maxsize unlimited extent management local;
SQL>create user ydyx default tablespace ydyx indentified by ydyx;