實例生命週期管理
| 操作 | 指令 | 說明 |
| 啟動實例 | db2start | 啟動 DB2 資料庫管理器實例 |
| 關閉實例 | db2stop / db2stop force | 正常關閉 / 強制關閉(腳本建議兩者皆寫) |
| 建立實例 | db2icrt <實例名> | Linux/UNIX 環境專用 |
| 刪除實例 | db2idrop <實例名> | 謹慎使用 |
| 切換實例 | set db2instance=<實例名> | Windows 環境 |
| 列出實例 | db2ilist | 顯示所有實例 |
資料庫基本操作
| 操作 | 指令 | 關鍵參數/注意事項 |
| 建立資料庫 | db2 create db <DB名> | 或指定編碼:using codeset GBK territory CN |
| 刪除資料庫 | db2 drop db <DB名> | 若失敗,先 db2 force application all 斷開連線 |
| 連線資料庫 | db2 connect to <DB> user <用戶> using <密碼> | |
| 斷開當前連線 | db2 connect reset 或 db2 disconnect current | |
| 斷開所有連線 | db2 disconnect all | |
| 列出資料庫目錄 | db2 list db directory | |
| 建立樣本資料庫 | db2sampl (Win) / sqllib/bin/db2sampl (Unix) | |
備份與恢復
| 操作 | 指令範例 | 備註 |
| 完整備份 | db2 backup db <DB> | 需先斷開連線 |
| 恢復資料庫 | db2 restore db <DB> | 作業系統需相同 |
| 表空間備份 | BACKUP DATABASE YNDC TABLESPACE (USERSPACE1) TO "D:\temp" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING | |
| 離線增量恢復 | DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM D:\backupautobakdb2 TAKEN AT 20060314232015 | |
| 前滾恢復 | db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE | 將暫掛資料恢復 |
配置與監控
| 操作 | 指令 |
| 取得實例配置 | db2 get dbm cfg |
| 取得資料庫配置 | db2 get db cfg for <DB> 或連線後 db2 get db cfg |
| 更新實例參數 | db2 update dbm cfg using <參數> <值> |
| 更新資料庫參數 | db2 update db cfg for <DB> using <參數> <值> |
| 啟用聯合功能 | db2 update dbm cfg using federated yes |
| 調整日誌空間 | db2 UPDATE DB CFG FOR <DB> USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600 |
| 資料庫管理器快照 | db2 get snapshot for dbm |
| 所有資料庫快照 | db2 get snapshot for all databases > snap.out |
| 重置監視器 | db2 reset monitor all |
統計資訊與重組
| 操作 | 指令 |
| 單表 RUNSTATS | db2 runstats on table <表名> and indexes all |
| 全庫統計更新 | db2 reorgchk update statistics on table all |
| 查看統計時間 | db2 "select tbname, nleaf, nlevels, stats_time from sysibm.sysindexes" |
| 單表 REORG | db2 reorg table <表名> |
| 檢查是否需 REORG | db2 reorgchk on table all |
緩衝池與表空間
| 操作 | 指令範例 |
| 建立緩衝池 | db2 CREATE BUFFERPOOL BPNAME IMMEDIATE SIZE 25000 PAGESIZE 8K |
| 建立正規表空間 | db2 CREATE REGULAR TABLESPACE TSNAME PAGESIZE 8K MANAGED BY SYSTEM USING ('path') EXTENTSIZE 8 BUFFERPOOL BPNAME |
| 建立使用者臨時表空間 | db2 CREATE USER TEMPORARY TABLESPACE TSNAME PAGESIZE 32K MANAGED BY DATABASE USING (FILE 'path' 10000) EXTENTSIZE 256 |
| 調整緩衝池大小 | db2 alter bufferpool IBMDEFAULTBP size -1 (由 BUFFPAGE 控制) 或 size 51200 |
| 修改 BUFFPAGE | db2 update db cfg for <DB> using BUFFPAGE <較大值> |
資料移動
| 工具 | 指令範例 |
| db2move 匯出 | db2move <DB> export -sn <schema> -tn <表1,表2> |
| db2move 匯入 | db2move <DB> import |
| EXPORT (IXF) | db2 "export to file.ixf of ixf select * from table" |
| LOAD (高效) | db2 "load from file.ixf of ixf replace into table COPY NO without prompting" |
疑難排查
- 查詢 SQLCODE:
db2 ? sql1403n
- 查詢 SQLSTATE:
db2 ? 08004
- 列出應用程式/連線:
db2 list applications show detail
- 檢視進程:
db2pd -agents -db <DB>
工具目錄建立
db2 create tools catalog systools create new database toolsdb