以前轉載過一篇關於備份和恢複controlfile的文章,地址如下
http://blog.csdn.net/wh62592855/archive/2009/11/20/4844506.aspx
控制檔案的主要內容
今天突然在想,controlfile裡到底包含了哪些資訊,查詢了幾個相關的資料字典視圖,網上搜了搜,現在小總結一下
- 資料庫的名字。該名取自初始化參數說明的資料庫名字或CREATE DATABASE語句中所使用的名字。
- 資料庫標示符。該標示符是在建立資料庫時ORACLE自動產生的。
- 資料庫建立的時間戳記。它是在資料庫建立時產生的。
- 聯機重做記錄檔的名字和準確位置。當在增加重做記錄檔、刪除重做記錄檔和修改重做記錄檔時,ORACLE會修改相關資訊。
- 當前日誌的序號。它是在日誌切換時ORACLE記錄的。
- 檢查點資訊。該資訊是在產生檢查點時ORACLE記錄的。
- 日誌的曆史資訊。這些資訊是在日誌切換時ORACLE記錄的。
- 歸檔記錄檔的準確位置和狀態。這些資訊是在重做記錄檔被歸檔時ORACLE記錄的。
- 資料檔案的名字和準確位置。當在增加資料檔案、刪除資料檔案和修改資料檔案的名字時,ORACLE會修改相關的資訊。
- 資料表空間的資訊。當在增加或刪除資料表空間時,ORACLE會修改相關的資訊。
- 備份的準確位置和狀態。這些資訊時由復原管理員記錄的。
如何限定控制檔案的大小
控制檔案由兩大部分組成:可重用的部分和不可重用的部分。
可重用部分可以使用參數CONTROL_FILE_RECORD_KEEP_TIME參數來控制,該參數的預設值為7天,即可重用部分的內容保留7天,一周之後這部分的內容可能被覆蓋。可重用的部分是供復原管理員來使用的,這部分的內容可以自動擴充。
另外,ORACLE資料庫管理員可以使用CREATE DATABASE或CREATE CONTROLFILE語句中的下列關鍵字(參數)來間接影響不可重用的部分的大小
- MAXDATAFILES
- MAXINSTANCES
- MAXLOGFILES
- MAXLGHISTORY
- MAXLOGMEMBERS
CONTROL_FILE_RECORD_KEEP_TIME
| Property |
Description |
| Parameter type |
Integer |
| Default value |
7 (days) |
| Modifiable |
ALTER SYSTEM |
| Range of values |
0 to 365 (days) |
| Basic |
No |
CONTROL_FILE_RECORD_KEEP_TIME specifies the minimum number of days before a reusable record in the control file can be reused. In the event a new record needs to be added to a reusable section and the oldest record has not aged enough, the record section expands. If this parameter is set to 0, then reusable sections never expand, and records are reused as needed.
Note:
This parameter applies only to records in the control file that are circularly reusable (such as archive log records and various backup records). It does not apply to records such as datafile, tablespace, and redo thread records, which are never reused unless the corresponding object is dropped from the tablespace.
怎樣查看控制檔案的配置怎樣才能得到控制檔案中全部記錄的相關資訊呢?可以通過V$CONTROLFILE_RECORD_SECTION來獲得。
V$CONTROLFILE_RECORD_SECTION
V$CONTROLFILE_RECORD_SECTION displays information about the control file record sections.
| Column |
Datatype |
Description |
TYPE |
VARCHAR2(28) |
Identifies the type of record section:
|
RECORD_SIZE |
NUMBER |
Record size in bytes |
RECORDS_TOTAL |
NUMBER |
Number of records allocated for the section |
RECORDS_USED |
NUMBER |
Number of records used in the section |
FIRST_INDEX |
NUMBER |
Index (position) of the first record |
LAST_INDEX |
NUMBER |
Index of the last record |
LAST_RECID |
NUMBER |
Record ID of the last record |
怎樣添加和移動控制檔案使用PFILE時添加或移動控制檔案的步驟
- 利用資料字典V$CONTROLFILE來擷取現有控制檔案的名字
- 正常關閉ORACLE資料庫
- 將新的控制檔案名稱添加到參數檔案的CONTROL_FILES參數中
- 使用作業系統命令將現有控制檔案複製到指定位置
- 重新啟動ORACLE資料庫
- 利用資料字典V$CONTROLFILE來驗證新的控制檔案名稱字是否正確
- 如果有誤 重做上述操作 如果正確 刪除無用的舊控制檔案
使用SPFILE時添加或移動控制檔案的步驟
- 利用資料字典V$CONTROLFILE來擷取現有控制檔案的名字
- 修改SPFILE 使用alter system set control_files命令來改變控制檔案的位置
- 正常關閉資料庫
- 使用作業系統命令將現有控制檔案複製到指定位置
- 重新啟動ORACLE資料庫
- 利用資料字典V$CONTROLFILE來驗證新的控制檔案名稱字是否正確
- 如果有誤 重做上述操作 如果正確 刪除無用的舊控制檔案