DB2 表空間進入 Quiesce Exclusive(停頓獨占) 狀態時,所有存取該表空間的 SQL 將報錯 SQL0290N Table space access is not allowed. SQLSTATE=55039。本文提供完整診斷與解除流程,並分析常見成因。
db2 => SELECT * FROM test
SQL0290N Table space access is not allowed. SQLSTATE=55039
DB2 Control Center 檢視表空間狀態顯示:Quiesced: EXCLUSIVE。
db2 connect to <dbname>db2 => LIST TABLESPACES SHOW DETAIL
關鍵輸出:
Tablespace ID = 2
Name = USERSPACE1
State = 0x0004 -- Quiesced: EXCLUSIVE (正常為 0x0000)
Number of quiescers = 1
Quiescer 1:
Tablespace ID = 2
Object ID = 50 -- 導致死鎖的物件 ID
db2 => SELECT tabname FROM syscat.tables WHERE tableid = 50
TABNAME
-----------------
SYSINDEXEXTENSIONPARMS
TEST -- 目標資料表
db2 => QUIESCE TABLESPACES FOR TABLE test RESET
DB20000I The QUIESCE TABLESPACES command completed successfully.
SELECT * FROM test,應正常回傳資料。db2pd -tablespaces 定期巡檢表空間狀態,異常即時告警。