V9.7中提供了更簡單易用的降低高水位標(biāo)記功能。只需要使用ALTER TABLESPACE命令就可以達(dá)到效果。同時(shí)DB2還提供了兩個(gè)表函數(shù)MON_GET_TABLESPACE和MON_GET_EXTENT_MOVEMENT_STATUS來獲取和監(jiān)控表空間以及數(shù)據(jù)塊移動信息。
1.MON_GET_TABLESPACE語法
MON_GET_TABLESPACE--(--tbsp_name--,--member--)
tbsp_name是表空間對象,如果是空值,則會對所有的表空間操作。member的默認(rèn)輸入是-1,指當(dāng)前成員,如果是-2,則是所有數(shù)據(jù)庫成員。這個(gè)函數(shù)的返回值說明:
tbsp_name:表空間名
tbsp_type:表空間類型
tbsp_state:表空間狀態(tài)
tbsp_used_pages:已使用頁
tbsp_free_pages:空閑頁
tbsp_total_pages:總頁
tbsp_page_top:高水位標(biāo)記頁
reclaimble_space_enabled:值1代表可回收空間
select * from table(MON_GET_TABLESPACE(null,-2));
2.獲取表空間信息
SELECT varchar(tbsp_name, 16) as tbsp_name,
RECLAIMABLE_SPACE_ENABLED,
TBSP_USED_PAGES,
TBSP_FREE_PAGES,
TBSP_PAGE_TOP
from TABLE(MON_GET_TABLESPACE('', -2)) AS t
where t.TBSP_PAGE_TOP > t.TBSP_USED_PAGES
該語句篩選出了所有高水位標(biāo)記大于已使用頁的表空間
3.ALTER TABLESPACE 語法
ALTER TABLESPACE--tablespace-name----------------------------> >----+-REDUCE--+-------------------------------+--+-----------------------------+-+ | +-| database-container-clause |-+ '-| on-db-partitions-clause |-' | | +-| all-containers-clause |-----+ | | +-MAX---------------------------+ | | +-STOP--------------------------+ | | '-integer--+---------+----------' | | +-K-------+ | | +-M-------+ | | +-G-------+ | | '-PERCENT-' | +-LOWER HIGH WATER MARK--+------+--------------------------------------------+ | '-STOP-' | '----------------------------------------------------------------------------'
MAX參數(shù)可以指定最大限度的降低高水位標(biāo)記來釋放空間。在運(yùn)行REDUCE命令后,在數(shù)據(jù)塊移動的過程中,也可以使用STOP參數(shù)來停止表空間移動。如果是DMS表空間,則需要先運(yùn)行LOWER HIGH WATER MARK子句降低高水位標(biāo)記,再運(yùn)行REDUCE子句釋放表空間。如果是啟用了自動存儲的表空間,直接運(yùn)行REDUCE子句即可。
自動存儲表空間
ALTER TABLESPACE REDUCE 100 M(MAX)
DMS 表空間
ALTER TABLESPACE LOWER HIGH WATER MARK ALTER TABLESPACE REDUCE (ALL CONTAINERS 10 M(MAX))
4.MON_GET_EXTENT_MOVEMENT_STATUS語法
MON_GET_EXTENT_MOVEMENT_STATUS--(--tbsp_name--,--member--)
tbsp_name 是表空間對象,如果是空值,則會對所有的表空間操作。member 的默認(rèn)輸入是 -1,指當(dāng)前成員,如果是 -2,則是所有數(shù)據(jù)庫成員。這個(gè)函數(shù)的返回值說明:
tbsp_name:表空間名
tbsp_id:表空間id
member:成員
current_extent:當(dāng)前正在移動數(shù)據(jù)塊
last_extent:最后移動的數(shù)據(jù)塊
num_extents_moved:已移動的數(shù)據(jù)塊
num_extents_left:未移動的數(shù)據(jù)塊
total_move_time:總移動時(shí)間(微秒)
5.監(jiān)視表空間的移動
SELECT varchar(tbsp_name, 20) as tbsp_name,
NUM_EXTENTS_MOVED,
NUM_EXTENTS_LEFT,
TOTAL_MOVE_TIME
from TABLE(MON_GET_EXTENT_MOVEMENT_STATUS('TBS1', -2)) AS t
6.驗(yàn)證高水位標(biāo)記的降低
SELECT varchar(tbsp_name, 16) as tbsp_name,
BSP_USED_PAGES,
TBSP_FREE_PAGES,
TBSP_PAGE_TOP
from TABLE(MON_GET_TABLESPACE('TBS1', -2)) AS t
posted on 2011-10-08 10:20
xrzp 閱讀(2945)
評論(1) 編輯 收藏 所屬分類:
db2