日期:2014-05-16  浏览次数:20480 次

oracle 删除数据文件后无法启动解决

首先:问题的产生原因,出现这个错误是因为我将\oracle\product\10.1.0\oradata\oral下的一个文件删除掉后出现的。

??? 利用sql语句语句创建表空间时弄错了,就一时心急把创建的文件删除了。结果问题就出来了。sysdba可以登录,但是在使用中就出现“数据库未打开,仅允许在固定表/视图中查询”,而normal用户无法登录使用,出现ORA-01033: ORACLE initialization or shutdown in progress 的错误。

分析:这个错误的原因应该是Oracle在启动后,用户登录时是要将方案中原有配置信息装载进入,装载过程中配置中有文件未找到,所以就报出错误。

解决过程:

C:\Documents and Settings\DHai>sqlplus /nolog

SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 9月 28 14:35:38 2009

Copyright (c) 1982, 2004, Oracle. All rights reserved.

SQL> connect sys/123 as sysdba;
已连接。
SQL> shutdown normal
ORA-01109: 数据库未打开


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

Total System Global Area 171966464 bytes
Fixed Size?????????????????? 787988 bytes
Variable Size???????????? 145750508 bytes
Database Buffers?????????? 25165824 bytes
Redo Buffers???????????????? 262144 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 6: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORAL\FSCREDIT40'


SQL> alter database datafile 6 offline drop;

数据库已更改。

SQL> alter database open resetlogs;

数据库已更改。

SQL> alter database datafile 6 offline drop;

数据库已更改。

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01531: 例程已打开数据库