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

DB2 命令列操作精要:核心指令、資料移動與 Load/Import 差異深度解析

     編輯:DB2 教學

為何偏好命令列?

相比圖形介面,命令列作業消耗較少記憶體資源,適合腳本自動化與遠端管理。但語法需熟稔,建議先透過圖形安裝程式理解選項含義,再轉向非互動式部署。

實例與連線控制

  • db2start / db2stop / db2stop force —— 啟動/停止實例(非單一資料庫)
  • restart database —— 非正常關閉後的一致性恢復,非重啟資料庫
  • connect / connect reset / disconnect all —— 連線管理,養成顯式關閉習慣
  • attach / detach —— 實例級管理連線
  • force application all —— 強制斷開所有應用連線

編目與配置

  • catalog / uncatalog —— 編目/刪除資料庫或節點,等同用戶端配置助手功能
  • update dbm cfg / update db cfg —— 更新實例/資料庫配置參數
  • get dbm cfg / get db cfg —— 取得配置與狀態

核心維護工具

工具用途
db2look產生 DDL、統計資訊匯出,便於重建物件或複製環境
db2move跨資料庫/跨伺服器移動大量資料,支援不同平台
runstats更新系統目錄統計資訊,優化器依賴基石
reorgchk檢查表/索引是否需重組
reorg消除碎片、壓縮資料,提升存取效能

備份恢復關鍵觀念

  • 備份目的:防災害遺失、支援重導向恢復遷移、AIX 需指定 with n buffers buffer size
  • 恢復限制:作業系統必須相同
  • 備份掛起:LOAD COPY NO 且開啟歸檔日誌時觸發,需備份解除

資料匯出入格式對照

格式特性適用場景
DEL分隔符 ASCII,行/列分隔通用、跨平台、最常用
ASC固定寬度 ASCII舊系統相容
PC/IXF含表定義與資料,數值打包DB2 之間遷移首選
WSF試算表格式不建議使用

Import vs Load 深度比較

維度IMPORTLOAD
目標表存在性不需預先存在必須預先存在
索引處理逐列維護載入後重建,速度快得多
日誌記錄完整記錄,可前滾恢復不記錄變更,**不可前滾恢復**
效能逐列 INSERT,含約束檢查分頁批次寫入,大量資料首選
觸發程序/約束逐列觸發違反唯一/主鍵記錄導向例外表

Load 三階段與掛起狀態處理

  1. 載入階段:資料寫入、索引收集
  2. 建立階段:索引重建
  3. 刪除階段:違反約束記錄移至例外表並刪除

常見掛起狀態與解除:

  • 載入掛起:錯誤發生於載入期 → LOAD RESTART 或 LOAD REPLACE 重試,或 LOAD TERMINATE 終止,極端情況重建表空間或從備份恢復
  • 刪除掛起:刪除階段錯誤 → 需人工介入
  • 備份掛起:COPY NO + 歸檔日誌 → 執行備份即解除
  • 檢查掛起:存在 FK、CHECK 約束或 MQT → SET CONSTRAINTS FOR <表> IMMEDIATE CHECKED FOR EXCEPTION IN <例外表>

自動生成欄位(Identity/Generated)載入注意

LOAD 預設不產生自動欄位值,需使用 IDENTITYOVERRIDE 或 GENERATEDOVERRIDE 選項,或在載入後手動同步序列值。

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