oracle 控制文件损坏处理
一, 故障模拟

控制文件损坏

发现关闭不了
强制关闭

故障恢复

发现已经执行到mont阶段,因为这个不依靠控制文件
进入整段日志 cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace/

查看alert_orcl.log日志
vim alert_orcl.log

报错信息
1 ORA-00210: cannot open the specified control file 2 ORA-00202: control file: '/oradata/orcl/control01.ctl' 3 ORA-27037: unable to obtain file status
处理方法一:
复制一个文件 从上一个文件复制一个过来

处理方法二:
配置文件删除一个

删除少了的就行
启动:

二, 重新创建控制文件
损坏的时候还是可以查查询的
查看数据文件

查看日志文件地址

备份: alter database backup controlfile to trace
查看文本文件路径:
select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
故障模拟
控制文件移除:
/oradata/orcl/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl','/u01/app/oracle/control03.ctl','/u01/app/oracle/control04.ctl

修复:
查看刚刚备份文件的信息
1 STARTUP NOMOUNT 2 CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG 3 MAXLOGFILES 16 4 MAXLOGMEMBERS 3 5 MAXDATAFILES 100 6 MAXINSTANCES 8 7 MAXLOGHISTORY 292 8 LOGFILE 9 GROUP 1 '/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512, 10 GROUP 2 '/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512, 11 GROUP 3 '/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512 12 -- STANDBY LOGFILE 13 DATAFILE 14 '/oradata/orcl/system01.dbf', 15 '/oradata/orcl/sysaux01.dbf', 16 '/oradata/orcl/undotbs01.dbf', 17 '/oradata/orcl/users01.dbf' 18 CHARACTER SET AL32UTF8 19 ;
从start到设置字符集那这段截取
进入数据库

启动数据库到nomont阶段
startup
执行tarce出来的命令行

开启数据库

查询信息

完成恢复
查看控制文件是否存在

人生就像一滴水,非要落下才后悔!
--kingle
浙公网安备 33010602011771号