什麼是控制檔案?
控制檔案是用于描述實體資料庫目前狀态的二進制檔案。
丢失控制檔案則資料庫無法使用,必須加以修複。
資料庫加載階段需要根據控制檔案中的資訊判斷資料庫的狀态。
控制檔案很重要,是以應該設定多份拷貝(通常為3份)。
控制檔案的内容:
1,資料庫名字和辨別符
2,資料庫建立時間戳
3,表空間名字 (添加或删除表空間時記錄)
4,資料檔案和redo日志檔案的名字和位置
5,目前redo日志檔案序列号 (做log switch時記錄)
6,檢查點資訊 (做checkpoint時記錄)
7,undo段的起始點和結束點
8,redo日志歸檔資訊 (日志歸檔時記錄)
9,備份資訊 (由RMAN負責維護)
通過spfile複制控制檔案:
1,修改spfile
SQL> alter system set control files = '$ORACLE_BASE/oradata/gldb/control01.ctl','$ORACLE_BASE/oradata/gldb/control01.ctl' scope=spfile;
2,關閉資料庫
SQL> shutdown normal;
3,複制控制檔案
$ cp $ORACLE_BASE/oradata/gldb/control01.ctl $ORACLE_BASE/oradata/gldb/control01.ctl
4,啟動資料庫
SQL> startup;
當然,通過修改pfile實作也可以。
檢視control file資訊:
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/home/oracle/oradata/gldb/control01.ctl
/home/oracle/oradata/gldb/control02.ctl
/home/oracle/oradata/gldb/control03.ctl
SQL> select value from v$parameter where name='control_files';
VALUE
/home/oracle/oradata/gldb/control01.ctl, /home/oracle/oradata/gldb/control02.ctl
, /home/oracle/oradata/gldb/control03.ctl
SQL> show parameters control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /home/oracle/oradata/gldb/cont
rol01.ctl, /home/oracle/oradat
a/gldb/control02.ctl, /home/or
acle/oradata/gldb/control03.ct
l