暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DB2 V10.5 降低表空间高水位 释放磁盘空间

原创 bingo 2023-02-17
1080

       DB2表空间占用很大磁盘空间,而实际并没有那么大,DB2删除数据或drop表并不会是否磁盘空间,所以要释放磁盘空间降低表空间高水位。

连接到数据库

BI-DEV:~ # su - db2inst4

db2inst4@BI-DEV:~> db2 connect to aismart2


查看DB2数据库表空间信息

db2inst4@BI-DEV:~> db2 list tablespaces show detail

确认表空间是系统管理(SMS),还是数据库管理(DMS).

Tablespace ID = 12

Name = TS_ODS_DATA --表空间名称

Type = Database managed space --类型为DMS 数据库自己管理

Contents = All permanent data. Large table space.

State = 0x0000 --状态为正常

Detailed explanation:

Normal

Total pages = 15009280 --总大小

Useable pages = 15009120 --可用大小

Used pages = 750272 --已用大小

Free pages = 14258848 --剩余大小(14258848*16384)

High water mark (pages) = 750272 --高水位 ,从今达到的最高值,压缩的

时候可以参考(不能低于这个值)

Page size (bytes) = 16384

Extent size (pages) = 32

Prefetch size (pages) = 1000

Number of containers = 5


查看数据库的表空间信息

db2inst4@BI-DEV:~> db2pd -tablespaces -db aismart2

查看DMS表空间是否启用了自动存储

db2inst4@BI-DEV:~> db2 get snapshot for tablespaces on aismart2



DB2降低表空间高水位HWM

1、查询表空间使用情况

db2inst4@BI-DEV:~> db2 "select char(TBSP_NAME,20) as TBSP_NAME, TBSP_USABLE_PAGES, TBSP_USED_PAGES, rtrim(100*TBSP_USED_PAGES/TBSP_USABLE_PAGES)||'%' as USED_RATE from sysibmadm.SNAPTBSP_PART where TBSP_USABLE_PAGES>0 order by TBSP_NAME,DBPARTITIONNUM"


2、查询筛选出所有高水位标记大于已使用页的表空间

db2inst4@BI-DEV:~> db2 "SELECT char(TBSP_NAME,20) 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"

RECLAIMABLE_SPACE_ENABLED 是表空间的 可回收存储器 属性;如果值是1,表示空间可回收。


3、表空间降低高水位

  • DMS自动存储表空间(DMS with AutoStorage) 直接运行 REDUSE MAX 来最多

的释放空闲空间 :db2 ALTER TABLESPACE USERSPACE1 REDUCE MAX

这个语句执行后就提示成功了,但是表空间水位并没有立刻降低,有个表空间

数据块移动的过程


  • 据说DMS非自动存储表空间(需要先运行 LOWER HIGH WATER MARK 子句降

低高水位标记,再运行 REDUCE 子句释放表空间):先执行ALTER

TABLESPACE USERSPACE1 LOWER HIGH WATER MARK 然后ALTER

TABLESPACE USERSPACE1 REDUCE (ALL CONTAINERS 100 M)


db2inst4@BI-DEV:~> db2 "ALTER TABLESPACE TS_ODS_DATA LOWER HIGH WATER MARK"

db2 "ALTER TABLESPACE TS_ODS_DATA REDUCE (ALL CONTAINERS 100

M)"


4、监视表空间TS_PD_DATA移动情况,如果在非移动状态下,所有值为 -1。

db2inst4@BI-DEV:~> db2 "SELECT varchar(TBSP_NAME, 20) AS TBSP_NAME, NUM_EXTENTS_MOVED, NUM_EXTENTS_LEFT, TOTAL_MOVE_TIME from TABLE(MON_GET_EXTENT_MOVEMENT_STATUS('TS_PD_DATA',-2)) AS t"


查看表空间状态

db2inst4@BI-DEV:~> db2 get snapshot for tablespaces on aismart2 | grep -i state

如果看到0x'00080000',则处于Move状态



DB2 V10.5 降低表空间高水位 释放磁盘空间_hyfstyle的博客-CSDN博客_db2释放表空间

DB2数据库降低高水位方案 -- cnDBA.cn_中国DBA社区

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论