首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 UDB V8 核心架構圖解:實例、資料庫、表空間、配置參數與目錄體系全景入門

     編輯:DB2 教學

初學 DB2 或備考認證?本文以圖解方式拆解 DB2 V8 for Linux/UNIX/Windows 核心架構:實例隔離、配置三層(環境變數、Profile Registry、dbm/db cfg)、四大目錄體系、資料庫內部結構(表空間、緩衝池、日誌、表/索引/LOB),並以案例研究串連所有概念,助您快速建立完整心智模型。

架構總覽圖(文中 Figure 1 雙圖)

藍色 = 查詢配置命令,黑色 = 修改配置語法,紫色 = 範例。建議列印彩色對照閱讀。

核心層級結構

1. 實例 —— 獨立運作環境

  • 提供隔離命名空間:同名資料庫/表空間可存在於不同實例。
  • 支援開發/測試/生產環境分離。
  • 命令:`db2icrt` 建立、`db2idrop` 刪除、`db2start`/`db2stop` 啟停、`db2ilist` 列舉。
  • Windows 預設實例 `DB2`,UNIX 預設 `db2inst1`。V8 移除 DAS 實例類型,功能整合為服務進程。
  • 建立實例後產生至 DB2 程式碼的連結,多實例共享同一組二進制碼。

2. 環境變數 —— OS 層級設定

  • Windows:控制台 → 系統 → 環境變數;UNIX:將 `db2profile`/`db2cshrc` 加入 `.profile`/`.login`。
  • 關鍵變數 `DB2INSTANCE`:指定當前作用實例,所有命令針對該實例。臨時切換:Windows `set DB2INSTANCE=DB2`(等號前後**不可有空格**),UNIX `export DB2INSTANCE=MyInst`。查看:`echo %DB2INSTANCE%` / `set DB2INSTANCE` / `db2 get instance`。

3. DB2 Profile Registry —— 免重啟的配置倉庫

  • 四類註冊表,最常用兩類:
  • Global-Level: 對所有實例生效(圖中位於實例框外)。
  • Instance-Level: 單一實例生效(圖中各實例內部)。
  • 同名變數以**最低層級優先**(Instance > Global)。
  • 命令:`db2set -all` 檢視(`[g]`全域、`[i]`實例)、`db2set -lr` 列舉所有支援變數、`db2set VAR=VALUE -g/-i INST` 設定。修改後建議 `db2stop && db2start` 生效。

4. 配置參數 —— 兩層獨立參數集

  • Database Manager Configuration (dbm cfg): 實例層級,影響該實例**所有**資料庫。命令:`db2 get dbm cfg`、`db2 update dbm cfg using PARAM VALUE`。V8 約 40% 參數可線上生效(無需重啟實例)。
  • Database Configuration (db cfg): 資料庫層級,影響單一資料庫。命令:`db2 get db cfg for DBNAME`、`db2 update db cfg for DBNAME using PARAM VALUE`。V8 約 50% 參數可線上生效(無需斷開所有連接)。

5. 四大目錄體系 —— 連通性地圖

目錄用途層級關鍵命令
System Database Directory總目錄,記錄所有可連接資料庫(本地/遠端)實例`db2 list db directory`、`db2 catalog db ... as ... at node ...`
Local Database Directory本地資料庫詳細資訊(路徑等)資料庫內部`db2 list db directory on `(path 來自系統目錄)
Node Directory遠端節點連通資訊(TCP/IP:主機/IP、埠號)實例`db2 list node directory`、`db2 catalog tcpip node ... remote ... server ...`
DCS Directory主機資料庫連通資訊(zSeries/iSeries,需 DB2 Connect)實例`db2 list dcs directory`、`db2 catalog dcs db ... as ...`

註:`catalog` 指令主要用於遠端資料庫登錄;本地資料庫 `CREATE DATABASE` 會自動建立條目。

6. 資料庫 —— 封閉獨立單元

  • 跨資料庫查詢不被允許(除非使用 Information Integrator)。
  • `CREATE DATABASE` 為命令而非 SQL,執行時自動建立配置檔、表空間、日誌、緩衝池。

7. 表空間 —— 邏輯表與物理容器中介層

  • 關聯特定緩衝池與容器(檔案/目錄/原始裝置)。
  • 建庫自動建立三大系統表空間:
    SYSCATSPACE(目錄/元資料)、TEMPSPACE1(系統臨時/排序/連接工作區)、USERSPACE1(使用者表預設,可刪除)。
  • 可用 `CREATE TABLESPACE` 顯式建立使用者表空間。

8. 表、索引、LOB

  • 表 = 無序列集;索引 = 有序指標(效能/唯一性);LOB = 影音/掃描文件大物件。皆駐留於表空間。

9. 日誌 —— 恢復基石

  • 記錄每一筆資料庫操作,故障時將資料庫恢復至一致性點。

10. 緩衝池 —— 效能調優核心

  • 所有索引/資料頁(除 LOB)必經之記憶體區域,主要快取。調優首選對象。

案例研究:新任 DBA 第一天熟悉系統

  1. 登入開發機(Windows 2000),開啟 CLP。
  2. `db2ilist` 列出所有實例。
  3. `db2 get instance` 確認當前實例,或 `set DB2INSTANCE=...` 切換。
  4. `db2set -all` 檢視註冊表變數。
  5. `db2 get dbm cfg` 檢視實例配置(如 `INTRA_PARALLEL`、`MAXAGENTS`)。
  6. `db2 list db directory` 查看系統目錄,辨識本地/遠端資料庫。
  7. 對目標資料庫 `db2 get db cfg for ` 檢視資料庫配置(如 `LOGFILSIZ`、`NUM_IOCLEANERS`)。
  8. `db2 list tablespaces` 查看表空間與容器分佈。
  9. `db2 list tables` 列出使用者表。
  10. `db2pd -db -bufferpools` 觀察緩衝池命中率與大小。

透過這套標準化檢視流程,新手也能快速掌握陌生 DB2 環境全貌,為後續管理、調優、遷移奠定堅實基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved