解决 Oracle 误删表空间文件所引起的数据库无法连接问题

问题描述

由于误删 Oracle 的表空间数据文件 **.dbf,导致数据库服务无法连接。

解决办法

  • 首先用 sysdba 用户登录数据库,查看数据文件

    1
    select file#,name,status from v$datafile
  • 然后将误删的表空间数据文件状态置为 offline。

    1
    alter database datafile 'xxx/xxx/xxx.dbf' offline drop
  • 然后使用下面的sql恢复数据库。

    1
    alter database open resetlogs
  • 之后会提示需要介质恢复,则用提示的文件进行恢复。

    1
    recover datafile '/oradata/xxx/xxx.dbf'
  • 如提示使用 BACKUP CONTROLFILE 选项的恢复必须已完成,则使用select * from v$logfile 查看日志文件所在路径。再使用recover database using backup controlfile进行恢复

  • 最后重启数据库监听服务以及oracle即可重新连接。
坚持原创技术分享,您的支持将鼓励我继续创作!