重置DB2表空間靜默狀態(tài)的正確方法
在重置DB2表空間靜默狀態(tài)時(shí),經(jīng)常會(huì)遇到一些問題,下面就教您重置DB2表空間靜默狀態(tài)的正確方法,希望可以解決您遇到的問題。
正確的重置DB2表空間靜默狀態(tài)的方法:
導(dǎo)致上述問題的原因是由于進(jìn)行重置操作的用戶不正確。靜默命令的 RESET 選項(xiàng)只有由原來發(fā)出靜默命令的用戶執(zhí)行才能真正生效,即使使用其他執(zhí)行 RESET 成功,也無法除去原用戶對(duì)表空間設(shè)置的靜默狀態(tài)。因此正確除去表空間靜默狀態(tài)的步驟為:
a) 查找靜默DB2表空間的用戶:
借助 db2dart 工具產(chǎn)生的報(bào)告,我們可以查詢到原始發(fā)出 QUIESCE 命令的用戶。具體執(zhí)行步驟如下:
b) 停止 DB2 實(shí)例:
db2stop force
c) 產(chǎn)生 DB2DART 的報(bào)告:
db2dart <數(shù)據(jù)庫別名> /DTSF
d) 從報(bào)告中查找發(fā)靜默命令的用戶:
根據(jù)命令執(zhí)行結(jié)果的提示,找到 DB2DART 產(chǎn)生的報(bào)告文件,打開該文件,對(duì)于靜默的表空間,可以在文件中找到類似如下信息:
- Information for Tablespace ID: 2
 - -------------------------------------
 - Tablespace name: USERSPACE1
 - Table space flags (HEX): 0101
 - Table space type: System Managed Space (SMS)
 - Page size: 4096
 - Extent size: 32
 - Prefetch size: 32
 - Version: 9
 - Tablespace state: 2
 - Number of quiescers: 1
 - 1) Userid of quiescer: DB2INST1
 - Quiesce state: 2
 - Tbspace ID of quiesced object: 2
 - Table ID of quiesced object: 3
 - EDU ID: 0
 - Agent ID: 0
 - ......
 
從而可以確定最早發(fā)出靜默命令的用戶為:DB2INST1。
e) 以正確的用戶登陸進(jìn)行重置操作:
使用查找到的 DB2INST1 用戶登陸后,執(zhí)行重置命令:
db2 quiesce tablespaces for table db2inst1.staff reset
命令成功后連接數(shù)據(jù)庫
f) 驗(yàn)證DB2表空間狀態(tài):
- db2 list tablespaces
 - ......
 - Tablespace ID = 2
 - Name = USERSPACE1
 - Type = System managed space
 - Contents = Any data
 - State = 0x0000
 - Detailed explanation:
 - Normal
 - ......
 
上述輸出表明重置的靜默命令執(zhí)行成功,表空間狀態(tài)已正常,其中的表均可被正常訪問至此完成了除去表空間靜默狀態(tài),使表空間狀態(tài)恢復(fù)正常的操作。
【編輯推薦】















 
 
 
 
 
 
 