天天看點

重置DB2表空間靜默狀态的正确方法

在重置DB2表空間靜默狀态時,經常會遇到一些問題,下面就教您重置DB2表空間靜默狀态的正确方法,希望可以解決您遇到的問題。

  正确的重置DB2表空間靜默狀态的方法:

  導緻上述問題的原因是由于進行重置操作的使用者不正确。靜默指令的 RESET 選項隻有由原來發出靜默指令的使用者執行才能真正生效,即使使用其他執行 RESET 成功,也無法除去原使用者對表空間設定的靜默狀态。是以正确除去表空間靜默狀态的步驟為:

  a) 查找靜默DB2表空間的使用者:

  借助 db2dart 工具産生的報告,我們可以查詢到原始發出 QUIESCE 指令的使用者。具體執行步驟如下:

  b) 停止 DB2 執行個體:

  db2stop force

  c) 産生 DB2DART 的報告:

  db2dart <資料庫别名> /DTSF

  d) 從報告中查找發靜默指令的使用者:

  根據指令執行結果的提示,找到 DB2DART 産生的報告檔案,打開該檔案,對于靜默的表空間,可以在檔案中找到類似如下資訊:

  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 ......

  進而可以确定最早發出靜默指令的使用者為:DB2INST1。

  e) 以正确的使用者登陸進行重置操作:

  使用查找到的 DB2INST1 使用者登陸後,執行重置指令:

  db2 quiesce tablespaces for table db2inst1.staff reset

  指令成功後連接配接資料庫

  f) 驗證DB2表空間狀态:

  db2 list tablespaces ...... Tablespace ID = 2 Name = USERSPACE1 Type = System managed space Contents = Any data State = 0x0000 Detailed explanation: Normal ......

  上述輸出表明重置的靜默指令執行成功,表空間狀态已正常,其中的表均可被正常通路至此完成了除去表空間靜默狀态,使表空間狀态恢複正常的操作。

本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/wws5201985/799652,如需轉載請自行聯系原作者