龐大資訊系統的穩定運行離不開規範、可追溯的資料庫維運體系。本文彙總 45 條高頻 DB2 維運命令,涵蓋實例控制、資料庫生命週期、連接管理、備份恢復、效能監控、表空間操作、統計維護、實例管理、資料遷移等九大場景,附帶參數解析與避坑提示,作為 DBA 隨身速查手冊。
| 操作 | 命令 | 關鍵說明 |
|---|---|---|
| 正常停止 | db2stop | 腳本建議雙重保險:db2stop; db2stop force |
| 強制停止 | db2stop force | 終結所有連接,慎用 |
| 啟動實例 | db2start | 背景實際執行 db2star2 |
| 建立實例 | db2icrt <實例名> | Linux/UNIX 專用 |
| 刪除實例 | db2idrop <實例名> | 不可逆,確認無殘留資料 |
| 切換實例 | set DB2INSTANCE=db2 | Windows 環境變數 |
| 列出實例 | db2ilist | 顯示所有實例名稱 |
| 操作 | 命令 | 關鍵說明 |
|---|---|---|
| 建立資料庫 (預設) | db2 create db <dbname> | 預設代碼頁/地域 |
| 建立資料庫 (指定編碼) | db2 create db <dbname> using codeset GBK territory CN | 中文環境推薦 |
| 刪除資料庫 | db2 drop db <dbname> | 若失敗:db2 force application all 或重啟實例 |
| 連接資料庫 | db2 connect to <db> user <usr> using <pwd> | 隱式提交 |
| 斷開當前連接 | db2 connect reset 或 db2 disconnect current | |
| 斷開所有連接 | db2 disconnect all | |
| 強制斷開所有應用 | db2 force application all | 備份/重組前必執行 |
| 列出資料庫目錄 | db2 list db directory | |
| 進入 CLP 互動模式 | db2cmd (Win) / db2 (Unix) |
| 操作 | 命令 | 關鍵說明 |
|---|---|---|
| 檢視 DBM 配置 | db2 get dbm cfg | 實例級 |
| 檢視 DB 配置 | db2 get db cfg for <db> 或 連接後 db2 get db cfg | 資料庫級 |
| 啟用聯合功能 | db2 update dbm cfg using FEDERATED YES | 需重啟實例生效 |
| 調整日誌空間 (開發機) | db2 UPDATE DB CFG FOR <db> USING LOGFILSIZ 25600 LOGPRIMARY 3 LOGSECOND 2 LOGRETAIN OFF | 4K 頁面下 ≈ 300MB;生產環境需依負載規劃 |
-- 建立 32K 頁面臨時表空間 (DMS)
DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K
MANAGED BY DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000)
EXTENTSIZE 256
-- 建立 8K 緩衝池與 Regular 表空間 (SMS)
db2 CREATE BUFFERPOOL STMABMP IMMEDIATE SIZE 25000 PAGESIZE 8K
db2 CREATE REGULAR TABLESPACE STMA PAGESIZE 8 K
MANAGED BY SYSTEM USING ('D:\DB2Container\Stma')
EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14
BUFFERPOOL STMABMP DROPPED TABLE RECOVERY OFF
| 類別 | 命令範例 | 說明 |
|---|---|---|
| 離線完整備份 | db2 backup db <db> | 需先 force application all |
| 表空間備份 | BACKUP DATABASE YNDC TABLESPACE (USERSPACE1) TO "D:\temp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING | 線上/離線均可 |
| 還原資料庫 | db2 restore db <src_db> | 覆蓋式還原 |
| 離線增量還原 | DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM D:\backup\autobak\db2 TAKEN AT 20060314232015 | 自動套用增量鏈 |
| 前滾恢復 (含日誌) | db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE | 暫掛狀態 → 可用 |
db2 connect to testdb user test using test
db2 "export to aa1.ixf of ixf select * from table1"
db2 "export to aa2.ixf of ixf select * from table2"
db2 connect reset
db2 connect to testdb user test using test
-- Load 適合大量資料,不記錄細節日誌,速度極快
db2 "load from aa1.ixf of ixf replace into table1 COPY NO without prompting"
db2 "load from aa2.ixf of ixf replace into table2 COPY NO without prompting"
db2 connect reset
關鍵選擇:LOAD (大量、高速、不可恢復至時間點除非 COPY YES) vs IMPORT (少量、全記錄、可恢復)。兩者均支援 REPLACE/INSERT 模式。
| 操作 | 命令 | 用途 |
|---|---|---|
| 資料庫管理器快照 | db2 -v get snapshot for dbm | 實例級資源視圖 |
| 列出應用程式詳情 | db2 list applications show detail | 獲取 PID、狀態、SQL |
| 錯誤代碼查詢 | db2 ? SQL1403N / db2 ? 08004 | SQLCODE / SQLSTATE 解碼 |
| 開啟監控開關 | db2 -v update monitor switches using BUFFERPOOL ON | 預設部分關閉 |
| 獲取完整快照 | db2 -v get snapshot for all databases > snap.outdb2 -v get snapshot for dbm >> snap.outdb2 -v get snapshot for all bufferpools >> snap.out | 離線分析 |
| 重置監控計數器 | db2 -v reset monitor all | 基準測試前必執行 |
目標:> 95%
公式:
(1 - (buffer pool data physical reads + buffer pool index physical reads)
/ (buffer pool data logical reads + buffer pool index logical reads)) * 100%
調整手段:
-- 將 NPAGES 設為 -1,由 BUFFPAGE 統一控制
db2 ALTER BUFFERPOOL IBMDEFAULTBP SIZE -1
-- 調大資料庫配置 BUFFPAGE
db2 UPDATE DB CFG FOR <db> USING BUFFPAGE <larger_value>
# 全庫統計更新 (含索引)
db2 -v connect to DB_NAME
db2 -v REORGCHK UPDATE STATISTICS ON TABLE ALL
db2 -v terminate
# 單表統計 (含所有索引)
db2 -v RUNSTATS ON TABLE TAB_NAME AND INDEXES ALL
# 檢視統計時間戳
db2 -v "SELECT TBNAME, NLEAF, NLEVELS, STATS_TIME FROM SYSIBM.SYSINDEXES"
| 操作 | 命令 |
|---|---|
| 建立工具目錄 | db2 create tools catalog SYSTOOLS CREATE NEW DATABASE TOOLSDB |
| 建立樣本資料庫 | Unix: sqllib/bin/db2sampl <path>; Windows: db2sampl [drive] |
| 列出所有表 | db2 list tables |
| 描述表結構 | db2 describe table <tab> |
| 新增欄位 | ALTER TABLE STAFF ADD COLUMN PHONE VARCHAR(20) |
LOGFILSIZ、LOGPRIMARY 等靜態參數COPY YES 指定備份目標db2rbind 或應用重連觸發db2stop force:優雅停機流程:Quiesce → Force → Stop提示:詳細命令語法請使用 db2 ? <command> 線上查閱。