今天测试的时候纠正了一个错误的印象,一直认为如果当前控制文件被误删除,会导致实例关闭。 而实际上,Oracle并不会结束当前的实例: SQL>. show parameter control_files NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string /u01/oracle/oradata/db01/contr ol01.ctl, /u01/oracle/oradata/ db01/control02.ctl, /u01/oracl e/oradata/db01/control03.ctl SQL>. 0select * from dual. D - X SQL>. host oracle:/home/oracle>. cd /u01/oracle/oradata/db01 oracle:/u01/oracle/oradata/db01>. ls -l *.ctl -rw-r----- 1 oracle dba 9748480 May 24 12:55 control01.ctl -rw-r----- 1 oracle dba 9748480 May 24 12:55 control02.ctl -rw-r----- 1 oracle dba 9748480 May 24 12:55 control03.ctl oracle:/u01/oracle/oradata/db01>. rm control02.ctl oracle:/u01/oracle/oradata/db01>. exit exit SQL>. 0select * from dual. D - X SQL>. 0select instance_name, status from v$instance. INSTANCE_NAME STATUS ---------------- ------------ db01 OPEN SQL>. alter system checkpoint. System altered. SQL>. 0select instance_name, status from v$instance. INSTANCE_NAME STATUS ---------------- ------------ db01 OPEN SQL>. alter system switch logfile. System altered. SQL>. 0select instance_name, status from v$instance. INSTANCE_NAME STATUS ---------------- ------------ db01 OPEN SQL>. col name format a50 SQL>. 0select * from v$controlfile. STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS ------- -------------------------------------------------- --- ---------- -------------- /u01/oracle/oradata/db01/control01.ctl NO 16384 594 /u01/oracle/oradata/db01/control02.ctl NO 16384 594 /u01/oracle/oradata/db01/control03.ctl NO 16384 594 SQL>. 0select * from v$controlfile_record_section. 0select * from v$controlfile_record_section *