DB2表空間靜默狀態(tài)的
DB2表空間處于靜默狀態(tài)的話(huà),由于靜默操作導(dǎo)致的鎖定的存在,對(duì)這樣的表空間進(jìn)行某些操作時(shí),可能會(huì)遇到 SQL3805N 或 SQL0290N 等報(bào)錯(cuò)信息,提示表空間不可訪(fǎng)問(wèn)。
例如以位于 DB2INST1.USERSPAC1 表空間的 DB2INST1.STAFF 表為例:
a) 靜默DB2表空間為意向更新?tīng)顟B(tài):
db2 quiesce tablespaces for table db2inst1.staff intent to update
b) 嘗試刪除表的操作將失敗:
db2 delete from db2inst1.staff
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL0290N Table space access is not allowed. SQLSTATE=55039
此時(shí)若使用:
db2 list tablespaces
命令檢查表空間狀態(tài),可以發(fā)現(xiàn)DB2表空間 USERSPACE1 處于 INTENT TO UPDATE 的靜默狀態(tài):
......
Tablespace ID = 2
Name = USERSPACE1
Type = System managed space
Contents = Any data
State = 0x0002
Detailed explanation:
Quiesced: UPDATE
......
如果要除去這一靜默狀態(tài),可使用靜默命令中的“RESET”選項(xiàng),使表空間恢復(fù)到正常狀態(tài)(0x0000),從而實(shí)現(xiàn)對(duì)DB2表空間中表的正常訪(fǎng)問(wèn)。
此時(shí),若嘗試使用任何一個(gè)DB2 用戶(hù),執(zhí)行如下命令,進(jìn)行除去該表空間的靜默狀態(tài)的嘗試:
db2 quiesce tablespaces for table db2inst1.staff reset
DB20000I The QUIESCE TABLESPACES command completed successfully.
可以看到命令已成功完成,但當(dāng)再次嘗試上述的 DELETE 操作時(shí),卻仍然遇到同樣的SQL0290N 的報(bào)錯(cuò),即不允許存取表空間。查詢(xún)表空間狀態(tài)表明它仍處于原來(lái)的意向更新的靜默狀態(tài)。
【編輯推薦】