Posted on 2009-07-14 23:05
Prayer 閱讀(986)
評論(0) 編輯 收藏 引用 所屬分類:
DB2
這是我的電腦剛裝完后,
db2的
目錄結構,上網查了一下每個
目錄和文件的用途,現總結如下:
1、頂級目錄-DB2,這是實例名,所謂實例,我理解的就是一套完整的數據庫運行環境和內存結構,和oracle的實例含義差不多,只不過oracle一臺機器同一時間只能運行一個實例,而DB2則可以同時運行多個實例,每個實例下包含多個數據庫,而數據庫包含各種對象,如:表、視圖、索引、觸發器、過程之類的,而和oracle相對應的,這些對象都是屬于某個用戶即屬于某個模式。這里模式的概念和oracle里類似,也許所有數據庫系統中模式的概念都大同小異。
2、Node0000,這是數據庫分區名,新版本的DB2中,數據庫分區取代了以前版本中的節點的概念。一個數據庫分區是數據庫的一個子集,擁有自己的配置文件、數據、索引和日志。在多分區數據庫環境下,一個數據庫可以被劃分為多個分區,不同的分區可以駐留在不同的物理機器上,從而提高整個數據庫系統的處理能力。在這種環境下,每個分區都有自己的編號,這個編號會體現在數據庫的目錄結構中。比如,如果該分區的編號為3,則該層目錄名稱應為NODE0003。對于單分區數據庫環境,該目錄名固定為NODE0000。這和Oracle集群是不是很像。
3、SQL00001,代表了實例下的一個數據庫,每建一個數據庫,編號就會加一,如果想看看這個目錄對應了哪個數據庫,可以在clp下運行命令 LIST DATABASE DIRECTORY ON D,這個命令查看了D盤下的目錄,結果顯示如下:

4、SQLDBDIR,存儲本地數據庫目錄相關的文件。本地數據庫目錄中駐留在每個存儲著數據庫的驅動器或者路徑中,用于存取子目錄下的本地數據庫。該目錄中存儲的每個條目中包含著數據庫名稱、數據庫別名以及數據庫類型和數據庫的位置信息。
5、DB2EVENT,這個目錄保存了DB2 事件監視器產生的結果。事件監視器用于記錄特定事件發生時數據庫的活動,記錄的結果可以被保存在表、命名管道或者文件中。要察看監控結果的話,可以使用事件分析器這樣的圖形化工具,或者 DB2EVMON 這樣的文本工具。
以下為轉載自loveunix.net :
db2rhist.asc 和 db2rhist.bak 文件
db2rhist.asc文件也就是在備份和恢復過程中會用到的DB2 恢復歷史文件。該文件隨著數據庫的建立而建立,當對數據庫進行了備份、恢復以及 LOAD 等操作時,該文件中都會記錄相應信息。這些信息在進行恢復操作將起到至關重要的作用。該文件是如此重要,以至于為了防止該文件損壞,DB2 同時生成了一個 db2rhist.bak 作為該文件的備份,而且,DB2 的 restore 命令還允許從備份映像中單獨恢復該文件。用戶可以使用 LIST HISTORY 命令來察看該文件的內容,也可以使用 UPDATE HISTORY 命令和 PRUNE HISTORY 命令來修改該文件,但不應當使用文本編輯器來直接處理。
SQLBP.1 和 SQLBP.2 文件
這兩個文件中包含數據庫中緩沖池的信息,用于對緩沖池進行管理。SQLBP.2 和 SQLBP.1 的內容完全相同,可以起到備份的作用。
SQLDBCON 文件
每個數據庫都有自己的配置參數,這些配置信息都被存放在 SQLDBCON 文件中,由于該文件是二進制格式,因此不能使用文本編輯器編輯,而應該使用 GET DB CFG 以及 UPDATE DB CFG 命令來察看和修改。
SQLINSLK 和 SQLTMPLK 文件
這兩個文件都是用來保證該數據庫只能被數據庫管理器的一個實例來使用。
SQLOGCTL.LFH 文件
這個文件就是日志控制文件,里面記錄著日志文件的狀態,特別是包含了一個叫作LOGHEAD的變量,該變量定義了當前第一個活動日志,該日志也是崩潰恢復的起點。在進行崩潰恢復的時候,DB2會利用該變量的值來決定使用哪些日志來進行崩潰恢復。LOGHEAD對于歸檔日志也有很重要的意義,該變量的值是歸檔日志文件和活動日志文件的分割點,文件名序號小于LOGHEAD的值的日志文件都可以被歸檔到其他位置。要察看改變量的值,可以使用 GET DB CFG 命令。
SQLOGDIR 目錄
這個目錄是數據庫缺省的日志文件存放目錄。不過,由于日志文件是數據庫恢復策略中的決定性因素,因此要盡量保證日志文件的可用性。如果使用缺省設置,數據庫的日志和數據都存放在同一位置,一旦發生介質錯誤,有可能造成日志文件和數據同時丟失,導致數據庫無法恢復。因此,對于關鍵性應用,建議更改數據庫配置參數 NEWLOGPATH 來修改日志文件的存儲位置。
SQLOGMIR.LFH 文件
該文件與 SQLOGCTL.LFH 文件的作用類似,不過專門適用于啟用了鏡像日志的 DB2 環境。
SQLSPCS.1 和 SQLSPCS.2 文件
這兩個文件中包含了數據庫中表空間的定義以及表空間的當前狀態。如果這兩個文件被損壞,數據庫連接操作將會失敗。
以上介紹的文件和目錄都是用于管理和控制數據庫的,而數據庫中的數據都是被存儲在表空間中。在創建數據庫時,系統必須預先創建三個表空間-系統目錄表空間、系統臨時表空間以及缺省用戶表空間,如果不特別指定,這三個表空間都會是 SMS 表空間,由于 SMS 表空間的容器類型只能是目錄,因此 DB2 會生成下列三個目錄:
SQLT0000.0 目錄
這個目錄是系統目錄表空間 SYSCATSPACE 所使用的容器。用于存儲系統目錄表。系統目錄表由一組以 SYSIBM 為模式的表組成,是一個數據庫的數據字典。系統目錄表里面包含了三類信息。一類是數據庫中所有數據庫對象的定義信息;一類是數據庫中的統計信息,在對應用程序進行優化時需要使用這些統計信息計算存取計劃。此外,還有一類是數據庫級別的授權信息。如果系統目錄表空間處于異常,數據庫連接操作將會失敗。
SQLT0001.0 目錄
這個目錄是系統臨時表空間 TEMPSPACE1 所使用的容器,用于存儲數據庫系統在操作過程中生成的臨時數據,比如排序、多表連接等操作時所形成的臨時表。每個數據庫中必須至少存在一個系統臨時表空間。
SQLT0002.0 目錄
這個目錄是缺省用戶表空間 USERSPACE1 所使用的容器,用于存放用戶創建的表。用戶也可以在數據庫創建后創建自己的用戶表空間。
要說明的是,我們上面介紹的三個表空間都是通過缺省方式創建的,在實際應用中,用戶可以在創建數據庫的時候指明這三個表空間的類型以及容器。那樣的話,看到的目錄結構會有些不一樣,但功能上是相同的。
下一次,我將研究一下表空間