DB2表空間是否啟用了自動存儲器的三個方法
如何確定一個已經(jīng)創(chuàng)建好的DB2數(shù)據(jù)庫表空間是否啟用了自動存儲器呢?本文將為您介紹三種常用的檢查方法,供您參考,希望對您有所幫助。
方法一:
使用 DB2 的快照工具對表空間進(jìn)行快照,如:
$ db2 get snapshot for tablespaces on sample
......
Tablespace name = SYSCATSPACE
Tablespace ID = 0
Tablespace Type = Database managed space
Tablespace Content Type = All permanent data. Regular table space.
Tablespace Page size (bytes) = 4096
Tablespace Extent size (pages) = 4
Automatic Prefetch size enabled = Yes
Buffer pool ID currently in use = 1
Buffer pool ID next startup = 1
Using automatic storage = Yes
......
通過快照輸出的“Using automatic storage”為“Yes”的信息,便可確定該表空間啟用了自動存儲器。
方法二:
使用 DB2 提供的如下快照表函數(shù):
$ db2 "select char((TBSP_NAME),30) as
TBSP_NAME,TBSP_ID,TBSP_USING_AUTO_STORAGE from
table(snap_get_tbsp('sample',-1)) as tbsp"
其中 TBSP_USING_AUTO_STORAGE 為“1”的表空間啟用了自動存儲器,如有為“0”的,則未啟用。#p#
方法三:
如果是 DB2 V8.1 安裝了 FixPak 10 或更新的補(bǔ)丁,則可使用 db2pd 工具操作,例如:
$ db2pd -db sample -tablespaces
在命令輸出的“Tablespace Autoresize
Statistics”段中,“AS”字段表明表空間是否啟用了自動存儲器,“Yes”即為啟用,“No”為未啟用。
如果要從一份數(shù)據(jù)庫備份映象文件中確定表空間是否啟用了自動存儲器,可使用 db2ckbkp 的命令加上選項(xiàng)
T。如果輸出中“flags”的值與“0x1000”執(zhí)行按位與操作,如果結(jié)果不為零,則說明該表空間啟用了自動存儲器。例如如果執(zhí)行下面的命令:
db2ckbkp -T <backup_image>
從命令輸出中,可以找到類似這樣的一段輸出:
......
TEMPSPACE1
tbspInImage: T
ID: 1
flags: 1111
flags2: 400
extent_size: 32
prefetch_size: 32
version: 23
flavour: 5
state: 0
statechangeobjectid: 0
statechangepoolid: 0
......
將 0x1111 和 0x1000 進(jìn)行按位與操作:
0x1111 AND
0x1000 =
----------
0x1000
其結(jié)果為 0x1000 而非零,當(dāng)該值非零時則說明表空間 USERSPACE1 啟用了自動存儲器功能。