打印本文 打印本文 关闭窗口 关闭窗口
Oracle某个数据文件损坏,如何打开数据库
作者:武汉SEO闵涛  文章来源:敏韬网  点击数949  更新时间:2009/4/22 22:10:41  文章录入:mintao  责任编辑:mintao


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






  • 系统环境:
      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;

      表空间已丢弃。

打印本文 打印本文 关闭窗口 关闭窗口