資料庫控制檔案

2021-08-30 10:19:47 字數 2768 閱讀 6636

oracle資料庫的組成——物理作業系統檔案的集合。主要包括以下幾種:

1、控制檔案(引數檔案init.ora記錄了控制檔案的位置)

控制檔案包括如下主要資訊

資料庫的名字,檢查點資訊,資料庫建立的時間戳

所有的資料檔案,聯機日誌檔案,歸檔日誌檔案資訊

備份資訊等

有了這些資訊,oracle就知道那些檔案是資料檔案,現在的重做日誌檔案是哪些,這些都是系統啟動和執行的基本條件,所以他是oracle執行的根本。如果沒有控制檔案系統是不可能啟動的。控制檔案是非常重要的,一般採用多個鏡相複製來保護控制檔案,或採用raid來保護控制檔案。控制檔案的丟失,將使資料庫的恢復變的很複雜。

控制檔案資訊可以從v$controlfile中查詢獲得

2、資料檔案(資料檔案的詳細資訊記載在控制檔案中)

可以通過如下方式檢視資料檔案

sql> select name from v$datafile;

name

---------------------------------------------

/u05/dbf/prod/system_01.dbf

/u06/dbf/prod/temp_01.dbf

/u04/dbf/prod/users_01.dbf

/u09/dbf/prod/rbs_01.dbf

從以上可以看出,資料檔案大致可以分為以下幾類:

i. 系統資料檔案(system_01.dbf)

存放系統表和資料字典,一般不放使用者的資料,但是使用者指令碼,如過程,函式,包等卻是儲存在資料字典中的。

名詞解釋:資料字典 資料字典是一些系統表或檢視,他存放系統的資訊,他包括資料庫版本,資料檔案資訊,表與索引等段資訊,系統的執行狀態等各種和系統有關的資訊和使用者指令碼資訊。資料庫管理員可以通過對資料字典的查詢,就可以了解到oracle的執行狀態。

ii. 回滾段檔案(rbs_01.dbf)

如果資料庫進行對資料的修改,那麼就必須使用回滾段,回滾段是用來臨時存放修改前的資料(before image)。回滾段通常都放在乙個單獨的表空間上(回滾表空間),避免表空間碎片化,這個表空間包含的資料檔案就是回滾資料檔案。

iii. 臨時資料檔案(temp_01.dbf)

主要存放使用者的排序等臨時資料,與回滾段相似,臨時段也容易引起表空間碎片化,而且沒有辦法在乙個永久表空間上開闢臨時段,所以就必須有乙個臨時表空間,它所包含的資料檔案就是臨時資料檔案,主要用於不能在記憶體上進行的排序操作。我們必須為使用者指定乙個臨時表空間。

存放使用者資料,這裡列舉了兩類常見的使用者型資料,一般資料和索引資料,一般來說,如果條件許可的話,可以考慮放在不同的磁碟上。

3、重做日誌檔案(聯機重做日誌)

使用者對資料庫進行的任何操作都會記錄在重做日誌檔案。在了解重做日誌之前必須了解重做日誌的兩個概念,重做日誌組和重做日誌組成員(member),乙個資料庫中至少要有兩個日誌組檔案,一組寫完後再寫另一組,即輪流寫。每個日誌組中至少有乙個日誌成員,乙個日誌組中的多個日誌成員是鏡相關係,有利於日誌檔案的保護,因為日誌檔案的損壞,特別是當前聯機日誌的損壞,對資料庫的影響是巨大的。

聯機日誌組的交換過程叫做切換,需要特別注意的是,日誌切換在乙個優化效果不好的資料庫中會引起臨時的「掛起」。掛起大致有兩種情況:

在歸檔情況下,需要歸檔的日誌來不及歸檔,而聯機日誌又需要被重新利用

檢查點事件還沒有完成(日誌切換引起檢查點),而聯機日誌需要被重新利用

解決這種問題的常用手段是:

i.增加日誌組

ii.增大日誌檔案成員大小

通過v$log可以檢視日誌組,v$logfile可以檢視具體的成員檔案。

4、歸檔日誌檔案

oracle可以執行在兩種模式之中,歸檔模式和不歸檔模式。如果不用歸檔模式,當然,你就不會有歸檔日誌,但是,你的系統將不會是乙個實用系統,特別是不能用於生產系統,因為你可能會丟失資料。但是在歸檔模式中,為了儲存使用者的所有修改,在重做日誌檔案切換後和被覆蓋之間系統將他們另外儲存成一組連續的檔案系列,該檔案系列就是歸檔日誌檔案。

有人或許會說,歸檔日誌檔案占領我大量的硬碟空間,其實,具體想一想,你是願意浪費一點磁碟空間來保護你的資料,還是願意丟失你的資料呢?顯而義見,我們需要保證我們的資料的安全性。其實,歸檔並不是一直占領你的磁碟空間,你可以把她備份到磁帶上,或則刪除上一次完整備份前的所有日誌檔案。

5、初始化引數檔案

initsid.ora或init.ora檔案,因為版本的不一樣,其位置也可能會不一樣。在8i中,通常位於$oracle_home/admin//pfile下,初始化檔案記載了許多資料庫的啟動引數,如記憶體,控制檔案,程序數等,在資料庫啟動的時候載入(nomount時載入),初始化檔案記錄了很多重要引數,對資料庫的效能影響很大,如果不是很了解,不要輕易亂改寫,否則會引起資料庫效能下降。

6、其他檔案

i . 密碼檔案

用於oracle 的具有sysdba許可權使用者的認證.

ii. 日誌檔案

報警日誌檔案(alert.log或alrt.ora)

記錄資料庫啟動,關閉和一些重要的出錯資訊。資料庫管理員應該經常檢查這個檔案,並對出現的問題作出即使的反應。你可以通過以下sql 找到他的路徑select value from v$parameter where name ="background_dump_dest";

後台或使用者跟蹤檔案

系統程序或使用者程序出錯前寫入的資訊,一般不可能讀懂,可以通過oracle的tkprof工具轉化為可以讀懂的格式。對於系統程序產生的跟蹤檔案與報警日誌檔案的路徑一樣,使用者跟蹤檔案的路徑,你可以通過以下sql找到他的路徑select value from v$parameter where name ="user_dump_dest";

資料庫版本控制

資料庫的版本控制與 版本控制的區別在於資料庫中的生產資料是現場創造的,當我們的表結構發生改變時,不能直接用drop table然後再create table,因為這樣會導致生產資料丟失。而 則完全由開發人員創造,可以用完全覆蓋的方式公升級。由於這點不同,致使資料庫在版本控制的過程中必然要採 用與 不...

資料庫併發控制

資料庫併發控制 1 在資料庫中為什麼要併發控制?答 資料庫是共享資源,通常有許多個事務同時在執行。當多個事務併發地訪問資料庫時就會產生同時讀取和 或修改同一資料的情況。若對併發操作不加控制就可能會訪問和儲存不正確的資料,破壞資料庫的一致性。所以資料庫管理系統必須提供併發控制機制。2 併發操作可能會產...

資料庫併發控制

acid,是指在可靠資料庫管理系統 dbms 中,事務 transaction 所應該具有的四個特性 a 原子性 atomicity 事務是乙個或多個行為 在一起組成乙個單獨的工作單元,事務中的動作要不都發生,要不都不發生.c 一致性 consistent 即在事務開始之前和結束之後,資料庫的完整性...