天天看點

Oracle 管理控制檔案

什麼是控制檔案?

控制檔案是用于描述實體資料庫目前狀态的二進制檔案。

丢失控制檔案則資料庫無法使用,必須加以修複。

資料庫加載階段需要根據控制檔案中的資訊判斷資料庫的狀态。

控制檔案很重要,是以應該設定多份拷貝(通常為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