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

发表于:2007-06-22来源:作者:点击数: 标签:
系统环境: 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