控制文件是数据库的重要组成部分,一般会有两个及以上的控制文件,他们内容是完全一样的。是因为为了防止个别控制文件丢失或出现故障后可以使用其他有效的控制文件进行恢复。现在对其个别控制文件物理删除模拟控制文件丢失
1.查询控制文件信息
SQL> col NAME for a80
SQL> select name from v$controlfile;NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORACLE11G/controlfile/o1_mf_ljszmmx0_.ctl
/u01/app/oracle/fast_recovery_area/ORACLE11G/controlfile/o1_mf_ljszmmxh_.ctl
2.删除控制文件1
[oracle@oracle11g controlfile]$ rm o1_mf_ljszmmx0_.ctl
[oracle@oracle11g controlfile]$ ll
total 0
这个时候alert.log还没有告警信息出现
3.正常关闭数据库
SQL> shutdown immediate
Database closed.
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/oradata/ORACLE11G/controlfile/o1_mf_ljszmmx0_.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
alert.og出现错误
4.启用强制关库
SQL> shutdown abort
ORACLE instance shut down.
5.使用完整控制文件生成新控制文件
cp /u01/app/oracle/fast_recovery_area/ORACLE11G/controlfile/o1_mf_ljszmmxh_.ctl /u01/app/oracle/oradata/ORACLE11G/controlfile/controlfile1.ctl
[oracle@oracle11g controlfile]$ ll
total 9904
-rw-r----- 1 oracle oinstall 10141696 Jun 25 11:59 controlfile1.ctl
6.修改参数文件
因为原来控制文件名为o1_mf_ljszmmx0_.ctl 现在生成的控制文件名为controlfile1.ctl,需要修改对应参数文件
vi initoracle11g.ora
control_files='/u01/app/oracle/oradata/ORACLE11G/controlfile/controlfile1.ctl
7.使用pfile文件启动数据库
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initoracle11g.ora';
ORACLE instance started.Total System Global Area 1586708480 bytes
Fixed Size 2253624 bytes
Variable Size 939527368 bytes
Database Buffers 637534208 bytes
Redo Buffers 7393280 bytes
Database mounted.
Database opened.
SQL>
SQL> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initoracle11g.ora';File created.
SQL>
8.验证控制文件信息
SQL> col NAME for a80
SQL> select NAME,BLOCK_SIZE,FILE_SIZE_BLKS from v$controlfile;NAME BLOCK_SIZE FILE_SIZE_BLKS
-------------------------------------------------------------------------------- ---------- --------------
/u01/app/oracle/oradata/ORACLE11G/controlfile/controlfile1.ctl 16384 618
/u01/app/oracle/fast_recovery_area/ORACLE11G/controlfile/o1_mf_ljszmmxh_.ctl 16384 618
结束~~~