標籤:分享 臨時檔案 寫日誌 div 檔案組 sele 命令 spfile 重做日誌
資料表空間和資料檔案
1、資料表空間是一個資料庫的磁碟邏輯空間。
2、每個資料表空間由一個或多個資料檔案組成。
3、一個資料檔案只能屬於一個資料表空間。
完成Oracle系統安裝並建立Oracle執行個體後,Oracle系統會自動建立多個資料表空間和資料檔案。
SELECT FILE_NAME, TABLESPACE_NAME, BYTES FROM DBA_DATA_FILES;
暫存資料表空間和臨時檔案
暫存資料表空間是Oracle系統用於存放與排序有關的特殊資料表空間。當操作中需要排序時,Oracle系統會將排序的資料存放在改資料表空間中,排序完成後釋放所佔空間。
SELECT FILE_NAME, TABLESPACE_NAME, BYTES FROM DBA_TEMP_FILES;
儲存結構
Oracle建立資料檔案時實際上是將磁碟的作業系統快重新格式化為Oracle資料區塊,並且每個資料區塊都有唯一標識。
使用者設計資料庫結構時會將表、索引等儲存到一個已存在的資料表空間上,表、索引等都是佔用空間的對象,統稱為段。段是由多個區間構成,區間是由多個連續的資料區塊構成。
控制檔案
控制檔案是儲存有Oracle執行個體、資料檔案、記錄檔資訊的內部二進位檔案。
Oracle正常啟動時,首先訪問初始化參數檔案SPFILE,然後為系統全域區(SGA)分配記憶體, 接下來Oracle會自動讀出控制檔案中所有的資料檔案、記錄檔的資訊。
Oracle出於安全考慮,在安裝Oracle資料庫或建立執行個體時,系統會自動建立多個控制檔案,確保運行時一個控制檔案損壞,系統仍能使用另一個控制檔案而正常工作。
查看V_$CONTROLFILE視圖的結構
DESC V_$CONTROLFILE;
查詢控制檔案的資訊
SELECT NAME, STATUS FROM V_$CONTROLFILE;
記錄檔
重做記錄檔
該記錄檔用來記錄資料庫所有發生過的事務(Transaction)資訊,以及由Oracle內部行為引起的資料庫變化資訊。在資料庫恢複時可以從該記錄檔中讀取發生過的事務的資料。資料庫運行期間,當使用者發出COMMIT命令時,資料庫會將每個事務資訊記錄在記錄檔中,寫入記錄檔成功後才將完成資訊返回給使用者。
每個Oracle執行個體用一個日誌線程來記錄資料庫的變化。日誌線程由多個日誌組構成,日誌組由多個日誌成員構成。
Oracle執行個體運行時產生日誌資訊,首先被記錄在系統全域區(SGA)的日誌緩衝區中,當發出COMMIT命令時,LGWR進程將日誌資訊從日誌緩衝區讀出並寫入到記錄檔組序號最小的檔案中,一個日誌組寫滿後寫下一個日誌組。當LGWR進程將所有能用的記錄檔都是用過後,又回到第一個日誌組重新覆蓋寫日誌資訊。當LGWR寫滿一個日誌組去寫另一個日誌組時稱為日誌切換,日誌切換時會在警告記錄檔(alter_sid.log)中記錄相應資訊。
Oracle資料庫結構