Decode360's Blog

          業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks

          一、數據庫的物理結構

          ?

          ?

          ??? 1.數據文件(data file)

          ??? 每個數據庫有一個或多個數據文件,數據文件包含了全部數據庫的數據。邏輯數據庫結構(如表、索引、數據字典)都存儲在數據文件中。在存取數據時,Oracle先從數據文件中讀取數據到內存的數據緩沖區中,這樣的存取方式減少了磁盤I/O操作,提高了相應性能。數據文件一旦建立后就不能改變大小,只能增加。

          ??? 數據文件系統機制包括:
          ??? Cooked 操作系統(OS)文件系統
          ??? ②原始分區(raw partitions)
          ??? ③自動存儲系統(Automatic Storage Management,ASM)
          ??? ④集群文件系統(RAC)
          ??? 本地管理的表空間:
          ??? 8.1.5版本之后使用 本地管理表空間(local-managed tablespace),他的優點是:無需數據字典,僅對每個數據文件中存儲的一個位圖來管理區段。目前版本已無法建立dictionary tablespace

          ?

          ??? 2.控制文件(control file)

          ??? 控制文件是一個很小的二進制文件,用于描述數據庫的物理結構。包括:①數據庫名;②數據庫數據文件和日志文件的名字和位置;③數據庫建立日期。

          ??? 一般在安裝Oracle時自動創建,其存放位置由參數文件SPFILEsid.oraCONTROL_FILES參數值來確定。數據庫在使用的過程中會不斷更新控制文件。如果該文件損壞,則數據庫將無法正常工作。

          ??? Oracle10g默認安裝了3個控制文件,每個文件內容相同,當某個文件損壞時,Oracle會自動使用另一個,以確保數據庫正常運行。
          ??? 可查詢 V$CONTROLFILE 來獲得控制文件信息。

          ?

          ??? 3.重做日志文件(redo log file)

          ??? 重做日志文件用于記錄對數據庫的修改信息,包括數據的修改以及數據庫結構的修改。查詢信息不會被記錄在日志中。為了防止日志文件本身的故障,ORACLE允許鏡象日志(mirrored redo log),以致可在不同磁盤上維護兩個或多個日志副本。日志文件中的信息僅在系統故障或介質故障恢復數據庫時使用,這些故障阻止將數據庫數據寫入到數據庫的數據文件。然而任何丟失的數據在下一次數據庫打開時,ORACLE自動地應用日志文件中的信息來恢復數據庫數據文件。

          ??? 日志工作過程中,多個日志是循環使用的,即一個日志文件組被填滿后,系統自動轉換到另一個日志文件組。當所有日志文件組都被填滿后,系統會將日志信息寫入到第一個日志組中,這時有兩個模式:歸檔模式(Archivelog)非歸檔模式(NoArchivelog),當運行在歸檔模式時,系統將啟用ARCH進程將要被覆蓋的日志保存到磁盤上形成歸檔日志。若使用非歸檔模式,則會覆蓋被寫入的文檔。

          ??? 查詢數據庫的日志組情況: select group#,bytes,members,status from v$log;

          ??? 查詢數據庫的日志歸檔模式: select log_mode from v_database;

          ?

          ??? 4.臨時文件(temp file)

          ??? Oracle 的臨時文件用來存儲大規模排序和散列操作的中間結果。如果 RMAN 中沒有足夠的空間,還會用臨時文件存儲全局臨時表數據,或者結果集數據。

          ??? 注意: 1. 永久表和索引等不會存儲在臨時文件中,但是臨時表及其索引的內容要存儲在臨時文件。

          ???????? 2. 臨時文件不生成 redo log ,無法重做

          ???????? 3. 不需要備份臨時數據文件,因為無法恢復

          ?

          ??? 5.密碼文件(password file)

          ??? 密碼文件是一個可選文件,允許遠程 SYSDBA 或管理員訪問數據庫。具體操作比較復雜。

          ?

          二、實例的物理結構

          ?

          ?

          ??? 1.參數文件(parameter file)

          ??? 參數文件記錄了 Oracle 數據庫的基本參數信息,主要包括:數據庫名、控制文件路徑、進程等。
          ??? 以前的參數文件名為 init.ora ,所以又叫 init 文件,但是在 Oracle10g 中,參數文件名為 SPFILEsid.ora ,其參數由 Oracle 系統自動管理。 SPFILE 的改進主要消除了參數文件的兩個嚴重問題:

          ??? 1. 由于只能放在數據庫服務器上,不能放在客戶機上,所以杜絕參數文件的繁衍。
          ??? 2. 可使用 ALTER SYSTEM 命令直接寫入參數值,無需使用編輯器進行編輯。 ( 用戶最好不要用編輯器進行修改 )
          ??? 注:取消參數設置: alter system reset sort_area_size scope = spfile sid= '*'

          ?

          ??? 2.跟蹤文件(trace file)

          ??? 跟蹤文件能夠提供調試信息,需要設置參數 SQL_TRACE=TRUE

          ??? 數據庫的測量性可以使用以下方法:

          ??? 1.V$ 動態視圖:例如 V$WAITSTAT V$SESSION_EVENT 等,均可反映系統動作

          ??? 2. 審計命令:例如 DBMS_FGA 等,可對某個表進行顆粒審計檢測

          ??? 3. 資源管理器: DBMS_RESOURCE_MANAGER ,對數據庫資源 (CPU 、 I/O ) 實現微管理

          ??? 4.Oracle 事件:跟蹤診斷,在之前文章中已經詳細介紹過

          ??? 5.DBMS_TRACE PL/SQL 引擎中的工具,全面記錄調用樹、產生的異常、遇到的錯誤等

          ??? 6. 觸發器:不用介紹了

          ??? 7.SQL_TRACE :即 10046 事件

          ?

          ??? 3.警告文件(alert file)

          ??? 警告文件就是數據庫的日記,是一個簡單的文本文件。記載了從數據庫創建到完結之間的所有包括日志開關、內部錯誤、表空間創建、離線及恢復等等的所有操作信息。

          ?

          三、其他物理結構:

          ?

          ??? 1.修改跟蹤文件(change tracking file)

          ??? 修改跟蹤文件是 Oracle10g 新增的一個可選文件,唯一的目的是跟蹤上一個增量備份以來那些塊已經修改。這樣 RMAN 就只需要備份發生變化的塊,而不必讀取整個數據庫。如果打開跟蹤功能,數據庫的任何改變都會被自動寫入到這個文件中。但是這回消耗系統的資源。

          ??? 可使用以下命令打開: alter database enable block change tracking;

          ?

          ??? 2.閃回日志文件(flashback log file)

          ??? 這也是 Oracle10g 的新增功能。引入 Flash Back 命令是為了加快原來很慢的時間點數據庫恢復 (point in time database recovery) 過程。具體內容參考詳細資料。

          ?

          ??? 3.轉儲文件(dump/DMP file)

          ??? 使用導出工具創建的獨立的 DMP 文件,其中包括了所有必要的元數據 (create alter 語句形式 ) ,可能還有數據本身,可以用于重新創建表、模式、甚至整個數據庫。而導入工具的作用就是讀取這些 DMP 文件,執行其 DDL 語句,并加載其數據。

          ?

          ??? 4.數據泵文件(Data Pump file)

          ??? 主要是被外部表和新的導入、導出工具 (IMPDP/EXPDP) 使用。只有 10g 之后的版本有這種功能。

          ?

          ??? 5.平面文件(flat file)

          ??? 平面文件就是一些沒有格式的數據記錄文件。

          ???????

          ?

          ?

          ?





          -The End-

          posted on 2008-08-20 18:07 decode360-3 閱讀(242) 評論(1)  編輯  收藏 所屬分類: Oracle

          評論

          # re: 數據庫結構(三) 2008-08-30 19:32 KillForDeath@hotmail.com
          呵呵 樓主也在看 ORALCE 深入數據庫體系結構一書  回復  更多評論
            

          主站蜘蛛池模板: 监利县| 沅江市| 桂平市| 辛集市| 临邑县| 锡林郭勒盟| 通城县| 乌海市| 永新县| 绿春县| 磐安县| 浠水县| 乐平市| 南阳市| 永新县| 孟津县| 莒南县| 宝兴县| 酒泉市| 江北区| 龙泉市| 双城市| 新竹县| 玉龙| 镇远县| 东阿县| 固安县| 柳州市| 涞源县| 金堂县| 托克托县| 丰宁| 商城县| 特克斯县| 荔浦县| 陆良县| 兴隆县| 通河县| 新巴尔虎左旗| 布拖县| 香格里拉县|