整理 DB2 DBA 最高頻、最實用的命令行操作手冊,覆蓋服務控制、數據移動、備份恢復、性能優化、監控診斷、實例生命周期,適合打印備查或做自動化腳本參考。
db2start # 啟動實例
db2stop # 正常停止
db2stop force # 強制停止 (斷開所有連接)
# 1. 默認分隔符 "," (DEL 格式)
db2 "import from data.txt of del insert into target_table"
# 2. 指定分隔符 "|"
db2 "import from data.txt of del modified by coldel| insert into target_table"
# 3. 大數據量優化參數
db2 "import from big.txt of del modified by coldel| commitcount 5000 insert into target_table"
# 1. 全表導出
db2 "export to data.txt of del select * from source_table"
# 2. 條件導出 + 指定分隔符
db2 "export to data.txt of del modified by coldel| select * from source_table where brhid='907020000'"
# 3. IXF 格式 (保留列定義、索引、數據類型,適合跨庫遷移)
db2 "export to data.ixf of ixf select * from source_table"
db2 "import from data.ixf of ixf commitcount 5000 insert into target_table"
db2 "select * from table where col='val'"
db2 "delete from table where col='val'"
db2 "update table set col1='new' where col2='old'"
db2 "select tabname from syscat.tables where status='C'" # 查鎖定表
db2 connect to DBNAME user USER using PASS
db2 connect reset # 斷開當前連接
db2 terminate # 徹底斷開進程級連接
db2 force applications all # 強制斷開所有應用 (慎用!)
db2 backup db DBNAME # 磁盤備份
db2 backup db DBNAME use TSM # TSM 介質備份
db2 backup db DBNAME to /backup/path # 指定目錄
db2 backup db DBNAME online
# 列出備份歷史
db2 list history backup all for DBNAME
# 恢復到指定時間點備份
db2 restore db DBNAME from /backup/path taken at 20240101120000
# 重建數據庫 + 導入數據 (異機恢復)
db2 -tvf crtdb.sql # 執行建庫腳本
db2 -tvf crttbl.sql # 執行建表腳本 (db2look 生成)
db2move DBNAME load # 導入數據 (db2move 導出的格式)
# 導出數據 (含表結構)
db2move DBNAME export
# 導出 DDL (含授權、索引、視圖等)
db2look -d DBNAME -e -x -a -o crttbl.sql
# 導入數據 (REPLACE 模式覆蓋同名表)
db2move DBNAME import -io replace_create
db2 bind @db2ubind.lst blocking all grant public sqlerror continue
# 或批量
/btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd
db2 get dbm cfg # 實例級參數
db2 get db cfg for DBNAME # 數據庫級參數
db2 update db cfg for DBNAME using LOGBUFSZ 20
db2 update db cfg for DBNAME using LOGFILSIZ 5120
# 修改後需重啟實例生效
db2stop; db2start
# 單表
db2 reorg table SCHEMA.TABLENAME
db2 runstats on table SCHEMA.TABLENAME with distribution and indexes all
# 全庫自動化腳本 (每天業務結束後運行)
# /btp/bin/runsall.sh 內容:
# db2 reorgchk update statistics on table all
# 循環所有表執行 reorg + runstats
db2 list applications # 當前連接
db2 list active databases # 活動庫
db2 list tablespaces show detail # 表空間使用率、HWM
db2 list tablespace containers for 2 # 表空間容器路徑
db2 get snapshot for dynamic sql on DBNAME # 動態 SQL 快照 (高消耗 SQL)
db2 get snapshot for database on DBNAME # 數據庫整體快照
db2ilist # 列出所有實例
db2idrop InstName # 刪除實例
db2icrt InstName # 創建實例
db2iauto -on / -off # 設置開機自啟動
db2level # 查看版本修補包級別
db2 get instance # 顯示當前實例名
db2 catalog db DBNAME on /path # 編目遠程/本地庫
db2 uncatalog db DBNAME # 取消編目
db2 list db directory # 列出已編目庫
db2 ? # 所有命令幫助
db2 ? backup # 特定命令語法
db2 ? SQL0803N # 錯誤碼說明 (4 位數,不足前補 0)
db2 "create table new_table like old_table" # 複製結構
db2 "insert into new_table select * from old_table where keep_condition" # 導入保留數據
db2 "rename table old_table to old_table_bak, new_table to old_table" # 原子切換
db2 reorg table old_table # 整理
db2 runstats on table old_table with distribution and indexes all