程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 重置DB2表空間靜默狀態的方法

重置DB2表空間靜默狀態的方法

編輯:DB2教程

DB2表空間靜默狀態應該如何重置呢?這是很多人都提到的問題,下面就為您詳細介紹重置DB2表空間靜默狀態的方法,供您參考。

正確的重置DB2表空間靜默狀態的方法:

導致上述問題的原因是由於進行重置操作的用戶不正確。靜默命令的 RESET 選項只有由原來發出靜默命令的用戶執行才能真正生效,即使使用其他執行 RESET 成功,也無法除去原用戶對表空間設置的靜默狀態。因此正確除去DB2表空間靜默狀態的步驟為:

a) 查找靜默表空間的用戶:

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

b) 停止 DB2 實例:

db2stop force

c) 產生 DB2DART 的報告:

db2dart <數據庫別名> /DTSF

d) 從報告中查找發靜默命令的用戶:

根據命令執行結果的提示,找到 DB2DART 產生的報告文件,打開該文件,對於靜默的表空間,可以在文件中找到類似如下信息:

  1. Information for Tablespace ID: 2  
  2. -------------------------------------  
  3.  
  4. Tablespace name: USERSPACE1  
  5. Table space flags (HEX): 0101  
  6. Table space type: System Managed Space (SMS)  
  7. Page size: 4096  
  8. Extent size: 32  
  9. Prefetch size: 32  
  10. Version: 9  
  11. Tablespace state: 2  
  12. Number of quIEscers: 1  
  13.  
  14. 1) Userid of quIEscer: DB2INST1  
  15. QuIEsce state: 2  
  16. Tbspace ID of quIEsced object: 2  
  17. Table ID of quIEsced object: 3  
  18. EDU ID: 0  
  19. Agent ID: 0  
  20. ......  
  21.  

從而可以確定最早發出靜默命令的用戶為:DB2INST1。

e) 以正確的用戶登陸進行重置操作:

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

db2 quIEsce tablespaces for table db2inst1.staff reset

命令成功後連接數據庫

f) 驗證表空間狀態:

  1. db2 list tablespaces  
  2.  
  3. ......  
  4. Tablespace ID = 2 
  5. Name = USERSPACE1 
  6. Type = System managed space  
  7. Contents = Any data  
  8. State = 0x0000 
  9. Detailed explanation:  
  10. Normal  
  11. ......  
  12.  

上述輸出表明重置的靜默命令執行成功,表空間狀態已正常,其中的表均可被正常訪問至此完成了除去DB2表空間靜默狀態,使表空間狀態恢復正常的操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved