误删Oracle数据库实例的控制文件

  前两天我在备份数据时,发现C:\oracle\product\10.2.0\oradata\GXSN\TEMP01.DBF文件大小竟然为23G多,完全消耗掉C盘空间,匆忙间我以为oradata/GXSN整个文件夹下文件为临时文件,将其完全删除。

     因为Oracle的数据文件都存放在E盘下,不知道oradata/GXSN存放的是控制文件,造成数据库无法使用。我通过查询相关资料想重建控制文件,但发现重建控制文件是在ORACLE控制文件已经备份的前提下的,我之前没有备份过Oracle的控制文件,所以无法恢复。

  在整个解决问题的过程中,我曾尝试了多种思路。虽然失败,但锻炼了解决问题的能力,也总结了一些经验。

  0.求助Oracle中国技术支持,竟然周末无人服务,需要等待工作日。(失败)

      1.使用EasyRecovery恢复删除的控制文件,因为服务器的E盘较大,达到3T,EasyRecovery无法使用。又使用了其他数据恢复软件,都无法恢复删除的数据。(失败)

      2.查询相关资料,尝试重建控制文件。(失败)

    CREATE CONTROLFILE reuse set  DATABASE orcl RESETLOGS noARCHIVELOG
       MAXLOGFILES 32
       MAXLOGMEMBERS 3
       MAXDATAFILES 32
       MAXINSTANCES 16
       MAXLOGHISTORY 1600
      LOGFILE
    group 1 ('E:\oracle\product\10.2.0\oradata\orcl\redo01.log') size 100k ,
    group 2 ('E:\oracle\product\10.2.0\oradata\orcl\redo02.log') size 100k,
    group 3 ('E:\oracle\product\10.2.0\oradata\orcl\redo03.log') size 100k,
    datafile
    'E:\oracle\product\10.2.0\oradata\orcl\users01.dbf',
    'E:\oracle\product\10.2.0\oradata\orcl\undotbs01.dbf',
    'E:\oracle\product\10.2.0\oradata\orcl\system01.dbf',
    'E:\oracle\product\10.2.0\oradata\orcl\sysaux01.dbf',
    'E:\oracle\product\10.2.0\oradata\orcl\example01.dbf';

   3.在别的机器上创建相同的GXSN数据库,然后将其下面的控制文件导入服务器的数据库下,但发现失败。

   4.在服务器上新建ORACLE服务实例,生成相应的控制文件,将其下面的控制文件导入的数据库GXSN下,但发现失败。

   5.将新建的数据库实例删除,原来的数据库在CMD控制台上使用SQLPLUS无法连接

          sqlplus /nolog

         conn /as sysdba

        出现ORA-12360:TNS:协议适配器错误

         无语了,竟然无法连接到原数据库实例上了。

        两三T的数据只能重新录入,这次自己的失误,真的是损失惨重!自己以后在心态浮躁时一定要冷静点,不可急躁。自己在ORACLE的学习上需更深一步,免得再犯如此低级的严重错误!

原文地址:https://www.cnblogs.com/wuhenke/p/1853652.html