Raw 裝置繞過檔案系統直接由 DB2 管理磁碟 I/O,可顯著提升資料庫效能。本文記錄在 IBM xSeries 345 + RHEL 3.0 + DB2 V8.1 + EMP300 磁碟陣列(5 顆 146GB RAID5 + 1 熱備)環境下的完整配置流程。
使用 fdisk /dev/sdb 建立分區:
sdb1/sdb2/sdb3:各 20GB 主分區 → 系統目錄/系統暫存/32KB 暫存表空間sdb4:擴展分區(剩餘 ~527GB)sdb5/sdb6:各 160GB 邏輯分區 → 使用者表空間(儲存表)sdb7:20GB 邏輯分區 → 索引專用表空間sdb8/sdb9:80GB/93GB → 格式化為 ext3,掛載存放日誌與備份關鍵:sdb1-sdb7 不格式化,保留供 DB2 直接管理。
raw /dev/raw/raw1 /dev/sdb1 # 系統目錄 4KB
raw /dev/raw/raw2 /dev/sdb2 # 系統暫存 4KB
raw /dev/raw/raw3 /dev/sdb3 # 系統暫存 32KB
raw /dev/raw/raw5 /dev/sdb5 # 使用者表空間 32KB (表)
raw /dev/raw/raw6 /dev/sdb6 # 使用者表空間 32KB (表)
raw /dev/raw/raw7 /dev/sdb7 # 使用者表空間 32KB (索引)
驗證:raw -a 顯示綁定狀態。寫入 /etc/rc.d/sysinit 確保開機自動重建。權限調整:chown db2:db2 /dev/raw/raw[1-7]。
執行 SQL 腳本 newdb.sql(db2 -td\";\" -f newdb.sql):
newdb,含 4KB 系統目錄/暫存表空間mkfs.ext3 /dev/sdb8; mkfs.ext3 /dev/sdb9
mkdir /db2/db2log /db2/db2backup
mount /dev/sdb8 /db2/db2log; mount /dev/sdb9 /db2/db2backup
db2 update db cfg for newdb using NEWLOGPATH '/db2/db2log'
db2 quiesce db defer; db2 unquiesce db
若 Raw 裝置殘留容器標記導致 The container is already in use 錯誤,勿重新分區/格式化,改用:
db2untag /dev/raw/raw1