通过trace文件重新创建控制文件

前言:

       控制文件顺坏一般有2个方法进行还原,第一如果只损坏一个控制文件的话,可以通过拷贝其他冗余的控制文件过来(一般控制文件至少保存在两个位置;

       通过语句可以查询控制文件存放的信息:

SQL> select name from v$controlfile;

NAME

--------------------------------------------------------------------------------

/oracle/PIP/origlogA/cntrl/cntrlPIP.dbf

/oracle/PIP/origlogB/cntrl/cntrlPIP.dbf

/oracle/PIP/sapdata1/cntrl/cntrlPIP.dbf

     如果控制文件都顺坏的话,但是系统有备份,可以还原相应的控制文件,然后进行不完全恢复,具体数据库的恢复已经有发帖介绍过去,请各位自行查找了;

 

但是如果是第三中情况了,所有的控制文件都损坏了,而且没有进行备份,那该怎么办?

本文介绍在这种极端情况下的极端方法,前提你对数据库的信息很熟悉了;

 

操作步骤:

1、在一台运行良好的数据库上面运行以下语句:

SQL> alter database backup controlfile to trace resetlogs; 

然后在相应的alert log下面查找trace产生的语句

通过trace文件重新创建控制文件

2、导出相应的trace文件

       1)查找STARTUP NOMOUNT语句,将这一行上面的所有行都删除

       2)查找所有以--开始的行,把这些行删除

       3)修改所有的db_name跟原来的一致

       4)找到CREATE CONTROLFILE REUSE DATABASE...语句,将其中的REUSE修改为SET

       5)找到RECOVER DATABASE USING BACKUP CONTROLFILE语句,将其用双横线(--)注释掉

    6)修改所有的文件路径跟实际环境的路径一致

    7)把修改后的文件以*.sql方式命名,然后上传到服务器

3、启动数据库

     1) 通过脚本启动数据库   sqlplu:@/oracle/ccf.sql(例如:放在oracle目录下,并以ccf.sql方式命名)

上一篇:不需要苹果官方支持,可重置MAC系统固件密码


下一篇:48. 源代码解读-RocketMQ-client接收消息流程