首页 > 数据库 > Oracle > 如何快速处理Oracle控制文件损坏
NORESETLOGS(仅当在线日志丢失才用 RESETLOGS,你的场景全程用 NORESETLOGS)。startup mount 不报错,能成功挂载。startup mount;
alter database backup controlfile to trace;
-- 查询跟踪文件位置select value from v$diag_info where name='Default Trace File';
shutdown immediate;startup nomount;-- 执行跟踪文件里的重建脚本CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES ... -- 跟踪文件自动生成的参数 DATAFILE -- 自动识别的所有数据文件路径 ...;
alter database open;
startup mount 报错失败,原控制文件物理文件还在(未删除)。# Linux/AIX 执行strings命令(Windows无此命令,直接看场景3)strings /u01/app/oracle/control01.ctl
startup nomount;CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8LOGFILE GROUP 1 '/u01/app/oracle/redo01.log' SIZE 50M, GROUP 2 '/u01/app/oracle/redo02.log' SIZE 50M DATAFILE '/u01/app/oracle/system01.dbf', '/u01/app/oracle/sysaux01.dbf', '/u01/app/oracle/users01.dbf';
alter database open;
.dbf数据文件(必须包含 system、sysaux、undo、users 等核心文件).log在线日志文件startup nomount;-- 执行手动编写的CREATE CONTROLFILE脚本alter database open;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7965779/viewspace-3172321/ ,如需转载,请注明出处,否则将追究法律责任。