首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 綜合知識

DB2 常用指令大全:實例、資料庫、表、備份、監控、效能調優 60+ 指令速查

     編輯:DB2 綜合知識

前言

DB2 命令列處理器 (CLP) 與系統指令極多,本文分類整理 60+ 最常用指令,涵蓋實例管理、資料庫操作、表/索引維護、備份還原、監控快照、效能調優、腳本執行與說明,供 DBA/開發人員桌邊速查。

一、CLP 環境啟動

db2cmd                # 開啟 DB2 命令視窗 (Windows)
db2cmd db2cc          # 開啟控制中心
db2cmd db2ce          # 開啟命令編輯器 (GUI)

二、實例管理


db2start                      # 啟動實例
db2stop                       # 停止實例 (若有連線需先 db2 force application all)
db2stop force                 # 強制停止
db2icrt <inst_name>           # 建立實例
db2idrop <inst_name>          # 刪除實例
db2ilist                      # 列出所有實例
db2iauto -on|-off <inst>      # 設定開機自動啟動
db2iupdt <inst_name>          # 更新實例 (Fix Pack 後)
db2get instance               # 顯示當前實例
set DB2INSTANCE=<inst_name>   # 切換當前實例 (Windows)
export DB2INSTANCE=<inst_name> # 切換當前實例 (Linux/Unix)

三、資料庫操作


db2 create db <dbname>                    # 建立資料庫
db2 create db <dbname> on /path codeset UTF-8 territory CN pagesize 32768  # 進階建庫
db2 connect to <dbname> user <usr> using <pwd>  # 連線
db2 connect reset                         # 斷開連線
db2 terminate                             # 徹底終止後端進程
db2 force application all                 # 強制中斷所有應用連線
db2 list db directory                     # 列出所有編目資料庫
db2 list active databases                 # 列出啟動中資料庫
db2 get db cfg                            # 顯示資料庫配置參數
db2 get db cfg for <dbname>              # 顯示特定庫配置
db2 update db cfg for <dbname> using <param> <value>  # 修改參數 (需重啟實例生效)
db2 drop database <dbname>               # 刪除資料庫 (謹慎)

四、表與索引操作


db2 list tables                           # 列出當前 Schema 使用者表
db2 list tables for system                # 列出系統表
db2 list tables for all                   # 列出所有表
db2 list tables for schema <schema>      # 列出特定 Schema 表
db2 create table t1 like t2               # 複製表結構
db2 "insert into t1 select * from t2"     # 複製資料
db2 "select * from tab where ..."         # 查詢
db2 describe table <tabname>             # 顯示表結構
db2 "alter table <tab> alter column <col> set data type varchar(100)"  # 修改欄位型別
db2 reorg table <tabname>                # 重組表 (消除碎片、回收已刪空間)
db2 runstats on table <tabname> with distribution and indexes all  # 更新統計資訊

五、腳本與說明


db2 -tvf script.sql          # 執行 SQL 腳本 (-t 分號結束, -v 顯示指令, -f 檔案)
db2 ? <command>              # 指令說明 (如 db2 ? backup)
db2 ? <sqlcode>              # 錯誤代碼說明 (如 db2 ? 0803, 需 4 位數)

六、備份與還原


# 離線備份
db2 backup db <dbname> to /backup/path compress include logs

# 線上備份 (需歸檔日誌模式)
db2 backup db <dbname> online to /backup/path with 2 buffers buffer 1024 include logs

# 表空間備份
db2 backup db <dbname> tablespace (USERSPACE1) to /backup/path

# 還原
db2 restore db <src_db> from /backup/path taken at <timestamp> into /target/path redirect without prompting
# 重導向還原後需 SET TABLESPACE CONTAINERS ... 然後
db2 restore db <dbname> continue

# 前滾復原
db2 rollforward db <dbname> to end of logs and complete

# 增量備份還原
db2 restore db <dbname> incremental automatic from /backup/path taken at <ts>

七、資料移動 (EXPORT/IMPORT/LOAD/db2move/db2look)


# 單表匯出 IXF
db2 "export to tab.ixf of ixf select * from schema.tab"

# 單表匯入
db2 "import from tab.ixf of ixf modified by forcecreate commitcount 10000 replace_create into schema.tab"

# 大量載入
db2 "load from tab.ixf of ixf replace into schema.tab copy yes use tsm"

# 整庫結構擷取
db2look -d <dbname> -e -o ddl.sql -i <usr> -w <pwd>

# 整庫資料遷移
db2move <dbname> export -sn <schema> -tn <tab1,tab2>
db2move <dbname> import -io replace_create

八、監控與快照


db2 get snapshot for all databases > snap.out
db2 get snapshot for dbm >> snap.out
db2 get snapshot for all bufferpools >> snap.out
db2 reset monitor all                         # 重置監視器
db2 get monitor switches                      # 檢視監視開關
db2 update monitor switches using bufferpool on  # 開啟緩衝池監視
db2 list applications show detail             # 列出應用程式 (含 PID)
db2pd -db <dbname> -locks show detail         # 即時鎖資訊 (無鎖定)
db2pd -db <dbname> -tablespaces               # 表空間即時狀態
db2pd -db <dbname> -bufferpools               # 緩衝池即時狀態
db2top -d <dbname>                            # 互動式即時效能監控 (需安裝)

九、效能調優相關


# 緩衝池命中率計算 (理想 > 95%)
# (1 - (physical_reads_data + physical_reads_index) / (logical_reads_data + logical_reads_index)) * 100%

# 更新所有表統計資訊
db2 reorgchk update statistics on table all

# 檢視索引統計時間
db2 "select tabname, nleaf, nlevels, stats_time from sysibm.sysindexes"

# 更改緩衝池大小 (NPAGES=-1 時由 BUFFPAGE 控制)
db2 alter bufferpool IBMDEFAULTBP size -1
db2 update db cfg for <dbname> using BUFFPAGE <new_value>

# 動態 FCM 緩衝 (純量/DPF)
db2 update dbm cfg using FCM_NUM_BUFFERS AUTOMATIC

十、其他實用指令


db2set -all                      # 顯示所有註冊表/環境變數
db2set <VAR>=<VALUE>            # 設定註冊表變數
db2level                         # 顯示 DB2 版本/Service Level
db2licm -l                       # 列出授權
db2licm -a <license_file>       # 安裝授權
db2dart /db <dbname> /action    # 資料庫分析報告工具
db2ckbkp -h <backup_image>      # 檢查備份影像完整性
db2ckrst -h <backup_image>      # 檢查增量還原序列
db2relocatedb -f config_file     # 重定位資料庫 (移動容器/日誌路徑)
db2rfpen -db <dbname>           # 重置前滾暫停狀態

結語

將本文存為離線速查表,遇到操作疑問即可快速檢索。記住:任何修改配置參數、備份還原、重組表等高風險操作前,必須先在測試環境驗證並備份。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved