首页 > 开发 > 综合 > 正文

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

2024-07-21 02:36:21
字体:
来源:转载
供稿:网友

  系统环境:
  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;
  
  表空间已丢弃。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表