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

DB2 程式設計技巧(十):環境變數、隔離級別與死鎖排查

     編輯:DB2 綜合知識

4.11 DB2 環境變數設定(AIX 平台)

重裝 DB2 後需設定編譯環境變數以確保預存程序可編譯。將 set_cpl 腳本放至 AIX,賦予執行權限後執行:

chmod +x set_cpl
./set_cpl

set_cpl 內容:

db2set DB2_SQLROUTINE_COMPILE_COMMAND="xlc_r -g \
-I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
-bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY \
-o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2"

db2set DB2_SQLROUTINE_KEEP_FILES=1

4.12 DB2 命令列選項設定

  • 查看目前選項:db2 => list command options
  • 暫時變更:db2 => update command options using C off(或 on)
  • 永久變更:db2 => db2set db2options=+c(或 -c)

4.13 變更隔離級別

全域設定:

DB2SET DB2_SQLROUTINE_PREPOPTS=CS|RR|RS|UR

互動式 Session 設定(需在未連線狀態下執行):

db2 change isolation to UR

4.14 管理資料庫/實例參數

  • 資料庫層級:get db cfg for head
  • 實例層級:get dbm cfg

4.15 升級後消除版本問題

db2 bind @db2ubind.lst
db2 bind @db2cli.lst

4.16 排查資料庫死鎖

使用命令中心互動式查詢時會施加共享鎖(S 鎖),若同時嘗試更新(需排他鎖 X 鎖)則會發生鎖等待。

步驟:

  1. 開啟鎖定監控:db2 update dbm cfg using dft_mon_lock on
  2. 擷取快照:db2 get snapshot for Locks on cleardb > snap.log
  3. 分析 snap.log,依 Application handle 追蹤各應用程式鎖狀況
  4. 監控結束後關閉:db2 update dbm cfg using dft_mon_lock off
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved