ORACLE之完全恢复:所有控制文件丢失
- 若仅仅丢失控制文件,可以使用命令重新创建控制文件
一、制造场景:删除所有控制文件
触发失败:
二、执行恢复
-
关闭数据库,启动时nomount状态(控制文件必须在nomount状态下进行恢复)
-
进行恢复,这里我们需要用到我们进行热备份时候的文件ctl_create.sql文件内容进行参考恢复。(热备份连接:https://blog.csdn.net/XiaoHG_CSDN/article/details/113810217)
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 200M BLOCKSIZE 512, GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 200M BLOCKSIZE 512, GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 200M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE '/u01/app/oracle/oradata/orcl/system01.dbf', '/u01/app/oracle/oradata/orcl/undotbs01.dbf', '/u01/app/oracle/oradata/orcl/sysaux01.dbf', '/u01/app/oracle/oradata/orcl/testbs_01.dbf', '/u01/app/oracle/oradata/orcl/undotbs02.dbf', '/u01/app/oracle/oradata/orcl/users01.dbf', '/u01/app/oracle/oradata/orcl/testbs_02.dbf', '/u01/app/oracle/oradata/orcl/testbs_03.dbf', '/u01/app/oracle/oradata/orcl/bigtbs_01.dbf', '/u01/app/oracle/oradata/orcl/data1_1.dbf' CHARACTER SET AL32UTF8 24 ; Control file created. SQL>
此时可以看到我们的控制文件已经恢复回来了。
-
此时数据库已经自动启动到mount状态了。并且不需要进行recover(注意:有些情况下是需要recover的,如果不需要的情况下就直接open)。直接open即可;
-
归档也是连续的