上一篇案例證實:QUIESCE TABLESPACES ... RESET 命令僅在由原始發出 QUIESCE 命令的用戶執行時才真正生效。其他用戶執行雖回傳成功訊息,實際上無法移除鎖定。本文提供完整的排查與修正流程。
需先停止實例以便離線分析:
db2stop force
執行以下命令掃描表空間並產生報告(/DTSF 參數指定掃描表空間):
db2dart <資料庫別名> /DTSF
命令完成後,會提示報告檔案路徑(通常位於資料庫目錄下的 DART0000/ 資料夾)。
開啟報告檔,搜尋目標表空間(如 USERSPACE1,ID=2)區段,關鍵欄位如下:
Tablespace ID: 2
Tablespace name: USERSPACE1
Tablespace state: 2
Number of quiescers: 1
1) Userid of quiescer: DB2INST1
Quiesce state: 2
關鍵發現: Userid of quiescer: DB2INST1 即為原始發出靜默命令的用戶。
切換至 DB2INST1 用戶,重新啟動實例後執行重置:
su - db2inst1
db2start
db2 quiesce tablespaces for table db2inst1.staff reset
再次查看表空間狀態:
db2 list tablespaces
預期輸出應顯示:
Tablespace ID = 2
Name = USERSPACE1
State = 0x0000
Detailed explanation: Normal
此時表空間已恢復正常,DELETE 等操作可正常執行。