Oracle 11G 误删.dbf文件,解决方案

要点:1、数据库服务启动的情况下删除.dbf文件是无法成功的,需要先停止Oracle服务,然后才能删除.dbf文件,如果删除.dbf文件时在重启Oracle服务,这时候再去通过plsql或者sqlplus会出现ORA-01033,这个错误就是我们删除.dbf文件引起的
解决方案:

  1. 取消登录
sqlplus /nolog
  1. 使用超级管理员登录/使用管理员登录
conn / as sysdba 或者 conn a/a@orcl as sysdba

上面语句如果执行失败,并提示ORA-01031,此时我们需要指定监听,D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora中添加以下代码,如下:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_2)
      (PROGRAM = extproc)
    )
   (SID_DESC =
      (SID_NAME = orcl(需要修改))
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_2(需要修改))
      (GLOBAL_DBNAME= orcl(需要修改))
  )
)

并且在D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\sqlnet.ora文件中添加以下代码:

SQLNET.AUTHENTICATION_SERVICES=(NTS)

上述代码添加完成后,再进行第2步;

  1. 卸载数据库
shutdown immediate;
  1. startup mount 打开控制文件,这一步可省略;
startup mount;
  1. 打开数据库查看有哪些文件已经删除,但是在数据库控制文件中还存在记录
alter database open;

这一步会提示’D:\ORADATA\XXXXXX.DBF’文件不存在,我们将该文件从控制文件中删除即可,代码如下:

alter database datafile 'D:\ORADATA\XXXXXX.DBF' offline drop;
  1. 打开数据库,直到成功启动。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐