杜戰(zhàn)偉(西安秦皇醫(yī)院信息部,西安,710016)
探討Oracle數據庫管理之控制文件
杜戰(zhàn)偉
(西安秦皇醫(yī)院信息部,西安,710016)
控制文件作為Oracle數據庫管理的物理文件之一,數據庫的名字以及數據文件的位置信息由它記錄??刂莆募坏p壞,電腦將無法正常工作。因此控制文件十分重要,其管理的重點在于防御。本文將對控制文件的相關內容作介紹,為安全管理Oracle控制文件提出了相關的方法。
Oracle;數據庫管理;控制文件
控制文件是一個很小的二進制文件,用于對數據庫的維護和記錄,無論何時打開Oracle數據庫,在此之前Oracle服務器都要對控制文件進行訪問??刂莆募坏┏霈F問題,會導致Oracle數據庫無法正常工作。數據庫的啟動以及正常運行都離不開控制文件。熟悉Oracle數據庫管理的控制文件的相關內容,有利于維護和管理Oracle數據庫的控制文件。
1.1 數據庫信息
1)數據庫名稱和數據庫唯一標識
2)數據文件和日志文件名字和位置
3)所有表空間信息
4)數據庫創(chuàng)建的時間
5)檢查點信息
6)當前重做日志文件序列號和歸檔信息
7)UNDO SEGMENT的起始和結束
8)相關文件備份信息
數據庫創(chuàng)建之初,要寫入創(chuàng)建的時間和標識以及數據庫的名稱;當要增加、刪除或者重命名數據文件或重做日志文件的時候要注意更新數據文件和重做日志文件名稱和位置;需要注意的是,表空間增刪之后要及時更新信息。控制文件必須在服務器打開時可以寫入。
1.2 控制文件的大小由下面的幾個參數決定:
1)最大日志文件個數:MAXLOGFILES
2)最大日志數量:MAXLOGMEMBERS
3)歷史日志最大數量:MAXLOGHISTORY
4)數據文件最大數量:MAXDATAFILES
5)最大實例文件數量:MAXINSTANCES
當出現任何修改數據庫結構的命令時,控制文件都會發(fā)生改變。當增加、刪除、重命名一個聯機日志文件或者一個數據文件時,服務器為了反映這種變化會立即改變數據文件。所以一旦數據庫結構發(fā)生改變就要立即備份控制文件。日志寫進程負責在控制文件中記錄當前日志序列號。校驗點進程負責把校驗的信息在控制文件中進行記錄。歸檔進程負責在控制文件中記入歸檔信息。
通常情況下,應該將控制文件分布在不同的物理磁盤上,避免因控制文件損壞破壞整個數據庫。
2.1 新建控制文件
在創(chuàng)建數據庫時會被默認創(chuàng)建控制文件,除此之外,用戶可以自己新建控制文件。當出現以下情況時,需要新建控制文件:
1)數據庫中的控制文件被完全破壞,無法修復,而且也沒有備份文件。
2)要修改原來的數據庫控制文件的相關參數設置。例如數據庫名稱、最大日志數量、最大歷史日志數量、最大數據文件數量、最大實例文件數量等相關信息。
可以使用CREATE CONTROLFILE命令語句創(chuàng)建控制文件。下文出現的操作代碼使用的是oracle相關操作軟件,可以成功執(zhí)行。其相關的操作步驟如下:
(1)輸入操作代碼查看數據文件和重做日志文件的名稱以及路徑。
SQL>SELECT MEMBER FROM V$LOGFILE
SQL>SELECT NAME FROM V$DATAFILE
(2)需要將數據庫關閉,可采取以下代碼命令:
SQL>SHUTDOWN IMMEDIATE
(3)進行重做日志文件和數據文件的備份。
(4)啟動實例且不加載數據庫,操作代碼如下:
SQL>STARTUP NOMOUNT
(5)使用命令語句新建控制文件,操作代碼為CREATECONTROLFILE。
(6)根據數據庫需求修改控制文件的相關參數。在創(chuàng)建數據庫的時候可以新建控制文件。
(7)手動打開數據庫,執(zhí)行以下操作代碼即可:SQL>ALTER DATABASE OPEN
控制文件一旦丟失會影響系統(tǒng)的工作,所以要保持數據庫的信息完整,防止文件毀損,要創(chuàng)建控制文件的副本,創(chuàng)建副本的同時已改將控制文件在不同的磁盤上進行備份。對控制文件實行多路徑
存儲保障Oracle數據庫的安全。相關操作步驟如下:
1)正常關閉數據庫;
2)使用操作系統(tǒng)命令復制要創(chuàng)建的控制文件;
3)將復制的控制文件的名稱和路徑加入到參數文件中;
4)啟動數據庫。
3.1 創(chuàng)建多路控制文件
在啟動實例時如果使用了服務器參數文件,則需要手動編輯文本參數文件,并修改控制文件初始化參數,具體步驟如下:
(1)手動修改初始化參數控制文件。在Oracle數據庫中需要通過手動修改初始化參數控制文件來定位并打開控制文件。
(2)關閉數據庫。
SQL> SHUTDOWN IMMEDIATE
(3)復制控制文件。例如將control1.ctl文件復制到新的目錄下并命名為control2.ctl
(4)啟動數據庫。在對控制文件進行復制后,只有重啟數據庫,Oracle數據庫實例才會根據控制文件參數讀取相應的控制文件,從而啟用多路控制文件。啟用多路控制文件后,Oracle將同時寫入到所有的控制文件,但是數據庫通常只讀取控制文件參數所指定的第一個控制文件。在啟動實例時,可以使用服務器參數文件指定服務器參數文件的文件名。如果啟動實例時使用服務器參數文件,在多路控制文件時需要更改服務器參數文件中控制文件的信息,需要新增控制文件的數量。
(5)利用V$CONTROLFILE驗證新的控制文件名稱是否正確,如果錯誤,需重復以上步驟,無誤可刪除舊文件。
(6)使用數據庫。上述操作完成后可以按照新的控制文件使用數據庫。
3.2 控制文件的重命名和重定位
更改控制文件的名稱即為重命名控制文件;改變控制問價的存儲位置即為控制文件的重定位。相關的步驟可以參照創(chuàng)建控制文件副本的操作步驟,此處不加贅述。
3.3 刪除控制文件
在有多個控制文件副本的情況下可以刪除控制文件,相關步驟如下:
1.修改初始化參數文件中的CONTROL-FILES參數;
2.關閉數據庫;
3.刪除不需要的控制文件;
4.重新啟動數據庫;
5.使用數據庫。
3.4 獲取控制文件的信息
有關控制文件的狀態(tài)和位置的信息可以通過查詢下列視圖來獲取:
列出控制文件的名稱,狀態(tài)和位置: SHOW PARAMETER CONTROL-FILES
列出所有參數的狀態(tài)和位置:V$PARAMETER
給出控制文字記錄段相關的信息:V$CONTROLFILE-RECORDSECTION
列出所有與當前實例相關的控制文件的名稱和狀態(tài):V$CONTROLFILE
4.1 控制文件使用注意事項
1)每個數據文件只對應一個數據庫。
2)每個數據庫至少有一個控制文件,最多可以有八個控制文件。通常情況下,數據庫至少會有兩個控制文件。
3)數據庫啟動時讀取控制文件以檢驗數據庫的完整性。
4)任何用戶都不要輕易修改控制文件中的內容。
5)任何一個控制文件不可使用時,數據庫實例都不能運行。
4.2 管理控制文件的策略
1)提供控制文件的名稱和位置。初始化文件中的control--file參數記錄了控制文件的名稱和位置。在對控制文件進行管理師,建議將其存儲在不同的硬盤上;應將控制文件放置在聯機重做日志文件的各個硬盤上。
2)管理控制文件的大小和數量??刂莆募拇笮≈饕獩Q定于在創(chuàng)建數據時,create database制定的幾個MAX關鍵 字: 即 MAXDATEFILES、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES。
Oracle在控制文件里按這些最大值預分配空間,因此如果在數據庫中添加數據文件或改名,控制文件的大小也會改變。如果這些關鍵字的值較大,那么控制文件也相應增大。
3)多路復用控制文件。操作系統(tǒng)下,復制備份文件到新的磁盤,拷貝下新控制文件的全路徑。
4)做好備份和恢復。定期備份控制文件。尤其是在改變了數據庫的物理結構之后,需要重新備份控制文件。數據庫的物理結構改變包括:新建、刪除、重命名文件;添加、更改或者刪除表空間的讀寫狀態(tài);新增或刪除重做日志文件或重做日志組。
控制文件是Oracle數據庫管理的重點。對建立的控制文件要經常查看并進行備份,熟悉相關的操作流程,保證數據庫的正常使用。
[1]武振東,汪中夏.Oracle數據文件的文件雕復[J].計算機工程,2013,(10):297-300.
[2]陳文宣.Oracle數據庫數據文件損壞時恢復方法的研究[J].科學與財富,2012,(5):150-150.
[3]馮 驥,盧振生.ORACLE的實例的 淺 談[J].科技 視界,2012,(35):43.
[4]成雅.基于Oracle Streams的數據庫實時備份與恢復技術研究[D].南京航空航天大學,2012.
杜戰(zhàn)偉,(1980-),男,本科,陜西乾縣人,工程師,研究方向為:醫(yī)院信息化管理及oracle數據庫應用。
The expolration on the control file of Oracle database management
Du Zhanwei
(TheInformation Department of Qinhuang Hospital in Xi'an,Xi'an,710016)
The control file was one of the physical files of the Oracle database management,the name and loaction of data files were recorded by it.Once the control file is damaged,the computer will not work properly.So the control file is very important,the focus of its management lies in defense.This article will introduce the related content of the control file, and put forward the related methods for the safety management of Oracle control file.
Oracle;database management;control file