命令體系架構:三層分類法
DB2 命令超過 200 個,按運行層級劃分為 實例/服務層、數據庫/對象層、應用/開發層 三大類。本文精選高頻 100+ 命令,按功能域分組,附帶核心參數與典型場景,作為 DBA 與開發者的桌面速查手冊。
一、實例與服務管理 (DAS / Instance / DB2 Admin)
| 命令 | 功能 | 典型參數/示例 | 權限 |
| db2start / db2stop | 啟動/停止實例 | db2start ADMIN MODE (維護模式) | 實例擁有者 |
| db2icrt / db2idrop / db2iupdt / db2ilist | 創建/刪除/升級/列表實例 | db2icrt -u db2fenc1 db2inst1 | root / Admin |
| dasauto / dascrt / dasdrop / dasupdt | DAS (管理服務器) 自啟/建/刪/升 | dascrt -u dasusr1 | root |
| db2admin | Windows 服務控制 | db2admin start / stop / status | Admin |
| db2set | 註冊表/環境變量管理 | db2set -all / db2set DB2COMM=TCPIP | 實例擁有者 |
| db2greg | 全局註冊表查詢 | db2greg -dump | 所有用戶 |
| db2licm | 許可證管理 | db2licm -a <.lic> / -l / -r | root / Admin |
| db2_deinstall / db2_install | 產品卸載/安裝 (非圖形化) | db2_install -b /opt/ibm/db2/V11.5 | root |
二、數據庫生命周期與配置
| 命令 | 功能 | 典型參數/示例 |
| CREATE DATABASE | 創建數據庫 | CREATE DB MYDB AUTOMATIC STORAGE YES ON /data DBPATH ON /dbdir USING CODESET UTF-8 TERRITORY CN COLLATE USING SYSTEM |
| DROP DATABASE | 刪除數據庫 | DROP DB MYDB |
| ACTIVATE / DEACTIVATE DATABASE | 預載入/卸載內存 (減少首次連接延遲) | ACTIVATE DB MYDB |
| GET/UPDATE DB CFG | 數據庫配置參數 | UPDATE DB CFG FOR MYDB USING LOGFILSIZ 4096 LOGPRIMARY 20 |
| GET/UPDATE DBM CFG | 實例管理器配置 | UPDATE DBM CFG USING DIAGLEVEL 3 |
| LIST DATABASE DIRECTORY | 列出編錄數據庫 | LIST DB DIRECTORY |
| CATALOG/UNCATALOG DATABASE | 編錄/刪除遠程數據庫別名 | CATALOG DB REMOTE_DB AS MYDB AT NODE NODE1 |
| CATALOG/UNCATALOG NODE | 編錄/刪除通訊節點 | CATALOG TCPIP NODE NODE1 REMOTE 10.0.0.1 SERVER 50000 |
三、備份、恢復與高可用 (HADR)
| 命令 | 功能 | 關鍵參數 |
| BACKUP DATABASE | 離線/在線備份 | BACKUP DB MYDB ONLINE TO /backup INCLUDE LOGS COMPRESS |
| RESTORE DATABASE | 恢復數據庫 | RESTORE DB MYDB FROM /backup TAKEN AT 20241231120000 INTO MYDB NEWLOGPATH /logs |
| ROLLFORWARD DATABASE | 日誌前滾 (PITR) | ROLLFORWARD DB MYDB TO END OF LOGS AND COMPLETE |
| RECOVER DATABASE | 一鍵恢復 (自動備份+前滾) | RECOVER DB MYDB |
| db2ckbkp | 驗證備份映像完整性 | db2ckbkp -h /backup/MYDB.0.db2inst1.NODE0000.CATN0000.20241231120000.001 |
| db2adutl | TSM 備份對象管理 | db2adutl query full DB MYDB |
| START/STOP HADR | 啟動/停止 HADR 角色 | START HADR ON DB MYDB AS PRIMARY / AS STANDBY |
| TAKEOVER HADR | 故障切換 (強制/優雅) | TAKEOVER HADR ON DB MYDB BY FORCE |
四、表空間、表、索引、統計與重組
| 命令 | 功能 | 典型用法 |
| LIST TABLESPACES / TABLESPACE CONTAINERS | 查看表空間/容器 | LIST TABLESPACES SHOW DETAIL |
| CREATE/ALTER/DROP TABLESPACE | 表空間 DDL | CREATE TABLESPACE TS1 MANAGED BY AUTOMATIC STORAGE |
| RUNSTATS | 收集統計信息 | RUNSTATS ON TABLE SCHEMA.TAB WITH DISTRIBUTION AND DETAILED INDEXES ALL |
| REORG TABLE / INDEXES | 重組表/索引 (在線/離線) | REORG TABLE SCHEMA.TAB ALLOW WRITE ACCESS |
| REORGCHK | 檢查是否需重組 | REORGCHK UPDATE STATISTICS ON TABLE ALL |
| INSPECT | 檢查頁面一致性 | INSPECT CHECK TABLESPACE TS1 LIMIT ERROR 10 |
| db2dart | 數據庫分析報告工具 | db2dart MYDB /TS /T |
| db2pd | 實時內存結構診斷 (無鎖) | db2pd -db MYDB -tablespaces -bufferpools -locks -transactions |
五、數據移動與遷移
| 命令 | 功能 | 典型用法 |
| EXPORT | 導出數據至文件 | EXPORT TO data.del OF DEL MODIFIED BY CODEPAGE=1208 SELECT * FROM TAB |
| IMPORT | 導入文件至表 | IMPORT FROM data.del OF DEL MODIFIED BY CODEPAGE=1208 COMMITCOUNT 2000 INSERT INTO TAB |
| LOAD | 高速裝載 | LOAD FROM data.del OF DEL MODIFIED BY ANYORDER FASTPARSE REPLACE INTO TAB COPY YES USE TSM |
| db2move | 批量遷移 (導出/導入/載入) | db2move MYDB EXPORT -sn SCHEMA -tn TAB1,TAB2 |
| db2look | 導出 DDL (表、索引、約束、權限) | db2look -d MYDB -e -o schema.ddl -l -x -c -cor -noview |
| INGEST | 高吞吐流式攝入 (10.1+) | INGEST FROM FILE data.del FORMAT DELIMITED INSERT INTO TAB |
六、監控、診斷與性能調優
| 命令/工具 | 功能 | 核心用法 |
| db2top | 實時文本監控 (類 top) | db2top -d MYDB -i 5 |
| db2mon / db2getsnaps | 快照監控 (舊版) | db2getsnaps -d MYDB |
| MON_GET_* 表函數 | 現代監控接口 (9.7+) | SELECT * FROM TABLE(MON_GET_DATABASE(-2)) |
| db2pd | 無鎖內存診斷 | db2pd -db MYDB -appl -locks -bufferpools -tcbstats |
| db2trc | 引擎級追蹤 (IBM 支援指導下) | db2trc on -f trace.dmp -m "*.*.*.*" |
| db2diag | db2diag.log 智能分析 | db2diag -time -level Error,Severe -fmt "%timestamp %msg" |
| db2ca / db2cc | 配置助手 / 控制中心 (GUI) | 圖形化管理 |
| db2advis | 設計建議器 (MQL 自動索引/MQT) | db2advis -d MYDB -s "SELECT ..." -o advice.txt |
| EXPLAIN / db2exfmt | 訪問計劃解析 | EXPLAIN PLAN FOR SELECT ...; db2exfmt -d MYDB -1 -o plan.txt |
| RUNSTATS / REORGCHK | 統計與重組決策 | 見上表 |
七、應用開發與驅動管理
| 命令 | 功能 | 示例 |
| db2cli | 交互式 CLI 測試 | db2cli validate -dsn MYDB |
| db2bind | 綁定包/應用 | db2bind @db2ubind.lst blocking all grant public |
| db2bfd | 綁定文件描述查看 | db2bfd -b bindfile.bnd |
| db2dclgn | 宿主語言變量聲明生成 | db2dclgn -d MYDB -t EMPLOYEE -l C -o emp.h |
| db2prep / db2precompile | 嵌入式 SQL 預編譯 | db2prep sqlembed.sqc bindfile |
八、安全、審計與加密
| 命令 | 功能 | 示例 |
| db2audit | 審計配置/提取 | db2audit configure SCOPE ALL STATUS BOTH ERRORTYPE AUDIT |
| db2secv8 / db2secv9 | 安全插件部署 | Kerberos/LDAP 插件安裝 |
| db2ckrst | 檢查增量恢復映像序列 | db2ckrst -d MYDB -t 20241231120000 |
九、故障排查黃金組合拳
- 連不上:
db2pd -db MYDB -appl → 檢查應用句柄狀態 → db2diag -level Error -time 24H → 看錯誤碼 (SQLCODE/SQLSTATE)。
- 慢查詢:
db2top 定位高 CPU 會話 → MON_GET_PKG_CACHE_STMT 取 SQL → EXPLAIN + db2advis → 索引/統計/重寫。
- 鎖等待/死鎖:
db2pd -locks -agents → 鎖鏈分析 → db2audit 死鎖事件 → 應用邏輯調整 (提交頻率、索引順序)。
- 日誌滿/事務回滾:
db2pd -logs → 可用日誌空間 → UPDATE DB CFG LOGFILSIZ/LOGPRIMARY → 長事務拆分。
- 備份失敗:
db2ckbkp -h 驗證映像 → db2diag 看媒體錯誤 → TSM/磁盤健康檢查。
十、容器化與雲原生新命令 (11.5+)
db2ctl:容器內實例生命周期管理 (start/stop/add/remove node)。
db2u:Db2uOperator 自定義資源 (CRD) 控制器命令。
db2setup -r response.rsp:靜默安裝響應文件生成 (CI/CD 流水線)。
速查卡片:最高頻 20 條命令 (建議貼工位)
1. db2start / db2stop
2. db2 connect to MYDB
3. db2 list tables for all
4. db2 "SELECT * FROM SYSIBM.SYSDUMMY1"
5. db2 get db cfg for MYDB
6. db2 update db cfg for MYDB using LOGFILSIZ 4096
7. db2 backup db MYDB online to /backup compress include logs
8. db2 restore db MYDB from /backup taken at
9. db2 rollforward db MYDB to end of logs and complete
10. db2 runstats on table SCHEMA.TAB with distribution and detailed indexes all
11. db2 reorg table SCHEMA.TAB allow write access
12. db2pd -db MYDB -tablespaces -bufferpools -locks -transactions
13. db2top -d MYDB
14. db2 export to data.del of del modified by codepage=1208 select * from TAB
15. db2 import from data.del of del modified by codepage=1208 commitcount 2000 insert into TAB
16. db2 load from data.del of del modified by anyorder replace into TAB copy yes use tsm
17. db2look -d MYDB -e -o schema.ddl
18. db2diag -time -level Error,Severe
19. db2audit configure scope all status both
20. db2set -all
將本文加入收藏,構建肌肉記憶:遇到問題先 db2pd/db2diag、調優先 EXPLAIN/db2advis、遷移先 db2look/db2move、備份必 COPY YES、上線必 RUNSTATS。命令不在多,精熟則靈。