情况一、有其它的控制文件没有被损坏
1、 用好的控制文件copy覆盖损坏的控制文件(数据库关闭的情况操作)
2、 正常关闭数据库修改参数文件,删除坏掉的控制文件路径。
情况二、所有的控制文件均被损坏,但是之前做过“alter database backup controlfile to trace”操作,生成一个控制文件信息到跟踪文件中,通过该文件信息手动创建控制文件。
1、 SQL> show parameter dual;查看跟踪文件位置
2、 SQL>alter database backup controlfile to trace;生成一个控制文件信息到跟踪文件里(这一步应该是在数据库控制文件没坏之前就做的)
3、 SQL>shutdown immediate正常关闭数据库
4、 SQL>startup nomount 启动实例
5、 SQL>host vi /db/ykg/udump/*.trc 打开之前生成的trc跟踪文件
6、 SQL> CREATE CONTROLFILE REUSE DATABASE "YKG" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/db/ykg11a.log' SIZE 4M,
GROUP 2 '/db/ykg/ykg2a.log' SIZE 4M,
GROUP 3 '/db/ykg/ykg3a.log' SIZE 4M
-- STANDBY LOGFILE
DATAFILE
'/db/ykg/system1.dbf',
'/db/ykg/undo1.dbf',
'/db/ykg/sysaux1.dbf',
'/db/ykg/users001.dbf'
CHARACTER SET ZHS16GBK
;
根据之前备份的控制文件里的信息来创建控制文件。
7.打开数据库
Sql>alter database open;
8.数据库打开后查看之前的数据文件是否完整。