Oracle某个数据文件损坏,如何打开数据库

发表于:2007-05-26来源:作者:点击数: 标签:
系统环境: 1. 操作系统:Windows 2000 Server,机器内存128M 2. 数据库 : Oracle 8i R2 (8.1.6) for NT 企业版 3. 安装路径:C:\ORACLE 错误现象: 因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用 SQL *Plus无法连接,

系统环境:

1. 操作系统:Windows 2000 Server,机器内存128M

2. 数据库: Oracle 8i R2 (8.1.6) for NT 企业版

3. 安装路径:C:\ORACLE

错误现象:

因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误:

ORA-01033: ORACLE initialization or shutdown in progress

模拟现象:

create tablespace test datafile
            'c:test.ora' size 5M
            AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED
            default storage (initial 128K next 1M pctincrease 0)

/

关闭所有服务stop.bat

net stop "OracleWebAssistant0"
            net stop "OracleOraHome81TNSListener"
            net stop "OracleServiceORADB"
            shutdown

在操作系统中删除test.ora文件

重新启动服务start.bat

net start "OracleWebAssistant0"
            net start "OracleOraHome81TNSListener"
            net start "OracleServiceORADB"

服务里OracleServiceORADB显示已启动,但用SQL*Plus无法连接,

显示ORA-01033: ORACLE initialization or shutdown in progress

解决方法:先让该数据文件脱机,就可以打开数据库

C:>svrmgrl
            svrmgrl>connect internal
            svrmgrl>shutdown
            svrmgrl>startup mount

——ARCHIVELOG模式命令,文件名要大写

svrmgrl>alter database datafile 'C:TEST.ORA' offline;

——NOARCHIVELOG模式命令

svrmgrl>alter database datafile 'C:TEST.ORA' offline drop;
            svrmgrl>alter database open;

——查询数据文件联、脱机状态

SQL> select file#,name,status from v$datafile;
            SQL> drop tablespace test;

表空间已丢弃。

原文转自:http://www.ltesting.net