db2降低hwm(V9.7)

db2降低hwm(V9.7)
V9.7中提供了更简单易用的降低高水位标记功能。只需要使用ALTER TABLESPACE命令就可以达到效果。同时DB2还提供了两个表函数MON_GET_TABLESPACE和MON_GET_EXTENT_MOVEMENT_STATUS来获取和监控表空间以及数据块移动信息。

1.MON_GET_TABLESPACE语法
MON_GET_TABLESPACE--(--tbsp_name--,--member--)
tbsp_name是表空间对象,如果是空值,则会对所有的表空间操作。member的默认输入是-1,指当前成员,如果是-2,则是所有数据库成员。这个函数的返回值说明:
tbsp_name:表空间名
tbsp_type:表空间类型
tbsp_state:表空间状态
tbsp_used_pages:已使用页
tbsp_free_pages:空闲页
tbsp_total_pages:总页
tbsp_page_top:高水位标记页
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
该语句筛选出了所有高水位标记大于已使用页的表空间

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参数可以指定最大限度的降低高水位标记来释放空间。在运行REDUCE命令后,在数据块移动的过程中,也可以使用STOP参数来停止表空间移动。如果是DMS表空间,则需要先运行LOWER HIGH WATER MARK子句降低高水位标记,再运行REDUCE子句释放表空间。如果是启用了自动存储的表空间,直接运行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 的默认输入是 -1,指当前成员,如果是 -2,则是所有数据库成员。这个函数的返回值说明:
tbsp_name:表空间名
tbsp_id:表空间id
member:成员
current_extent:当前正在移动数据块
last_extent:最后移动的数据块
num_extents_moved:已移动的数据块
num_extents_left:未移动的数据块
total_move_time:总移动时间(微秒)

5.监视表空间的移动
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.验证高水位标记的降低
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

你可能感兴趣的:(db2降低hwm(V9.7))