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

DB2 UDB V8.1 管理學習筆記 (二) - 物件管理、編目與備份恢復

     編輯:DB2 教學

表空間與資料類型補充

  • SMS 簡單易用,DMS 需手動規劃容器但效能彈性大。
  • 資料庫至少需一個 4KB 頁面的系統暫存表空間;可額外建立大頁面 (8K/16K/32K) 使用者暫存表空間,DB2 會自動選用。
  • 無法用 ALTER TABLE 改變欄位資料類型,僅部分類型可調整長度 (較 Oracle 限制多)。
  • SELECT 表達式 FROM SYSIBM.SYSDUMMY1 等同 VALUES 表達式,可用於測試函數/運算。

更新與預設值處理

  • 表/視圖的 DML 皆寫日誌,支援 COMMIT/ROLLBACK。
  • UPDATE 時不會重新執行 DEFAULT 運算式。若需重新產生預設值 (如時間戳),需顯式指定:
    CREATE TABLE T1 (C1 VARCHAR(32), LASTUPD TIMESTAMP WITH DEFAULT CURRENT TIMESTAMP);
    UPDATE T1 SET C1='NEW', LASTUPD=DEFAULT;

代碼頁與字元集

  • 建立資料庫時指定 CODEPAGE,建立後不可變更。
  • 應用程式連線時 DB2 自動比對代碼頁,不一致則轉換 (有效能開銷)。
  • 建議統一應用程式與資料庫代碼頁。
  • CLP 代碼頁設定:DB2SET DB2CODEPAGE=1386 (Windows 簡體中文 GBK)。

遠端資料庫編目步驟 (CLP)

-- 1. 編目遠端節點 (TCP/IP)
DB2 CATALOG TCPIP NODE LOCAL_NODE_NAME REMOTE HOSTNAME|IP SERVER SERVICE_NAME

-- 2. 編目資料庫別名
DB2 CATALOG DATABASE DB_NAME AS LOCAL_ALIAS AT LOCAL_NODE_NAME USER USERNAME USING PASSWORD

-- 3. 連線測試
DB2 CONNECT TO LOCAL_ALIAS USER USERNAME USING PASSWORD
  • SERVICE_NAME 對應遠端 /etc/services 中的埠號定義 (如 DB2_DB2INST1 50000/tcp)。
  • 本地別名在機器層級不可重複。

實用管理指令

備份與恢復 (離線/線上)

離線備份

DB2 BACKUP DATABASE DB_NAME USER USER_NAME USING PASSWORD TO BACKUP_DIR
# 例: DB2 BACKUP DATABASE DLHDB USER DLH USING ADMINDLH TO D:\BACKUPS
  • 備份完成會產生時間戳記 (如 20031209141056),恢復時需指定。

離線恢復

DB2 RESTORE DATABASE SRC_DB USER USER_NAME USING PASSWORD FROM BACKUP_DIR TAKEN AT TIMESTAMP TO DRIVE_LETTER INTO NEW_DB_NAME
# 例: DB2 RESTORE DATABASE DLHDB USER DLH USING ADMINDLH FROM D:\BACKUPS TAKEN AT 20031209141056 TO D: INTO NEWDB

線上備份 (需啟用日誌保留)

-- 必須先設定
DB2 UPDATE DB CFG FOR DB_NAME USING LOGRETAIN ON
-- 或
DB2 UPDATE DB CFG FOR DB_NAME USING LOGARCHMETH1 DISK:/PATH

-- 執行線上備份
DB2 BACKUP DATABASE DB_NAME ONLINE TO PATH

增量備份

DB2 UPDATE DB CFG FOR DB_NAME USING TRACKMOD YES
DB2 BACKUP DATABASE DB_NAME INCREMENTAL TO PATH

實例遷移與更新 (UNIX/Linux)

  • DB2IDROP -F INSTANCE_NAME:強制斷開連線並刪除實例。
  • DB2IMIGR INSTANCE_NAME:遷移實例 (版本升級後執行)。
  • DB2IUPDT INSTANCE_NAME:更新實例以獲得新功能/修正包。
  • DB2 GET INSTANCE:查看目前實例。

參數生效模式

  • IMMEDIATE:立即生效。
  • DEFERRED:實例重啟後生效。

客戶端設定檔匯入/匯出

配置助手可匯出伺服器設定檔,多台用戶端匯入。僅安裝 Runtime Client 時可用命令:

DB2CFIMP ACCESS_PROFILE_NAME

應用程式連線管理

DB2 LIST APPLICATIONS
DB2 FORCE APPLICATION (2)       -- 終止指定句柄 (可用逗號分隔多個)
DB2 FORCE APPLICATION ALL       -- 終止所有連線
-- 僅終止現有連線,不阻擋新連線

建表與索引規劃重點

  • CREATE TABLE 可指定表空間:
    CREATE TABLE TEST (...) IN TBSP_DATA INDEX IN TBSP_IDX

    建表後無法將索引移至其他表空間,必須提前規劃!

  • INCLUDE 欄位索引 (僅限 UNIQUE 索引):
    CREATE UNIQUE INDEX IX_EMP ON EMPLOYEE (EMPNO) INCLUDE (LASTNAME, FIRSTNAME)

    額外欄位不參與排序/唯一性,但可滿足 SELECT LASTNAME, FIRSTNAME FROM EMPLOYEE WHERE EMPNO < '000300' 避免回表。

  • ALLOW REVERSE SCANS:索引加入反向指標,支援正向/反向掃描。
  • CLUSTER 索引:CREATE INDEX IX_DEPT ON EMPLOYEE (WORKDEPT) CLUSTER,維持資料物理順序接近索引順序。

索引數量經驗法則

功能指令
查看詳細資料庫配置DB2 GET CONFIGURATION SHOW DETAIL
查詢錯誤代碼說明DB2 '? SQL10008'
設定預設實例DB2 SET DB2INSTANCE=INST_NAME
啟動/停止實例DB2START / DB2STOP [FORCE]
連接實例 (管理用)DB2 ATTACH TO INSTANCE INST_NAME
查看實例配置詳細DB2 GET DBM CFG SHOW DETAIL
導出資料庫完整 DDLDB2LOOK -D SAMPLE -A -E -L -X -M -F -O SAMPLE.SQL
環境類型建議索引數
OLTP (線上交易)1~2
混合查詢/OLTP2~5
唯讀查詢/資料倉儲5+

工具啟動

  • Windows/UNIX 命令列:DB2CC 啟動控制中心。
  • DB2MOVE 批量移動資料:DB2MOVE DBNAME ACTION (ACTION=EXPORT/IMPORT/LOAD),-l 指定 LOB 目錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved