本文延續《DB2 實戰命令速查手冊(一)》,聚焦於索引檢視、視圖查詢、存儲過程枚舉、數據類型轉換、連接控制、表鎖定、系統目錄查詢、權限授予等日常運維高頻場景,所有命令均在 DB2 9.7+ / 10.5 / 11.1 版本驗證通過。
-- 方式 A:describe 命令(CLP 交互模式)
db2 describe table USER1.DEPARTMENT
-- 方式 B:描述任意 SELECT 結果集結構
db2 describe select * from USER.TABLES
-- 查看指定表的所有索引元數據
db2 describe indexes for table USER1.DEPARTMENT
SELECT VIEWNAME FROM SYSCAT.VIEWS
WHERE VIEWNAME = 'V_ZJT_TABLES';
SELECT INDNAME FROM SYSCAT.INDEXES
WHERE INDNAME = 'I_ZTABLES_TABNAME';
SELECT SUBSTR(PROCSCHEMA,1,15) AS SCHEMA,
SUBSTR(PROCNAME,1,15) AS PROC_NAME
FROM SYSCAT.PROCEDURES;
場景:IP 字段存為 VARCHAR,需按整數排序/運算。
-- 將 IP 字符串轉整數後加 50
SELECT CAST(IP AS INTEGER) + 50 FROM LOG_COMM_FAILED;
提示:生產環境建議先用 CASE WHEN IP ~ '^\d+$' THEN CAST(IP AS INTEGER) END 過濾非數字值,避免轉換報錯。
CONNECT RESET
-- 查看活動會話
LIST APPLICATIONS;
-- 強制斷開所有(慎用!會回滾未提交事務)
FORCE APPLICATION ALL;
-- 或針對特定應用句柄
FORCE APPLICATION (12345, 12346);
DISCONNECT DB2_GCB; -- 僅阻止新連接,現有會話不受影響
適用於批量維護窗口、防止並發干擾。
-- 排他鎖(獨佔):阻塞所有讀寫
LOCK TABLE TEST IN EXCLUSIVE MODE;
-- 共享鎖:允許並發讀,阻塞寫
LOCK TABLE TEST IN SHARE MODE;
-- 釋放鎖:提交或回滾事務即自動釋放
COMMIT; -- 或 ROLLBACK;
| 命令 | 說明 | 典型輸出 |
|---|---|---|
| LIST TABLES | 當前用戶可見的所有表/視圖 | TABLENAME, SCHEMA, TYPE |
| LIST TABLES FOR SYSTEM | 包含系統目錄表(SYSIBM/SYSCAT) | SYSTABLES, SYSCOLUMNS… |
| LIST ACTIVE DATABASES | 當前實例上已激活的數據庫 | SAMPLE, TARGETDB… |
| LIST COMMAND OPTIONS | 顯示當前 CLP 設置選項 | AUTOCONMIT, DISPLAY… |
| LIST DATABASE DIRECTORY | 本地/遠端目錄中的數據庫條目 | Database alias, Directory entry type |
| LIST TABLESPACES | 當前連接數據庫的所有表空間 | TBSP_ID, NAME, TYPE, STATE |
| LIST TABLESPACE CONTAINERS FOR <ts_id> | 指定表空間的容器路徑/大小 | Container ID, Name, Pages |
| GET AUTHORIZATIONS | 當前用戶在該庫的所有權限彙總 | DBADM, CREATETAB, BINDADD… |
DB2START -- 啟動實例後台進程
DB2STOP -- 正常關閉(等待應用斷開)
DB2STOP FORCE -- 強制關閉(同 FORCE APPLICATION ALL)
-- 基礎 DML 權限
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE SCHEMA.TABLE TO USER APP_USER;
-- 全權限含授予選項
GRANT ALL ON TABLE SCHEMA.TABLE TO USER ADMIN_USER WITH GRANT OPTION;
GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO PUBLIC;
-- 或批量授予某 schema 下所有包
GRANT EXECUTE ON PACKAGE SCHEMA.* TO ROLE APP_ROLE;
SQL1224N,建議先通知業務方或配合維護窗口執行。LIST TABLESPACE CONTAINERS 需指定數字 ID,可先用 LIST TABLESPACES SHOW DETAIL 獲取。掌握上述命令組合,可覆蓋 90%+ 的日常巡檢、故障排查、權限變更場景。建議將常用指令封裝為 Shell/Python 腳本庫,實現「一鍵巡檢、一鍵授權、一鍵鎖表」,提升運維效率與標準化水平。