1.问题现象:
日志中出现如下错误信息:

FUNCTION: DB2 UDB, buffer pool services, sqlbDMScheckObjAlloc, probe:830
MESSAGE : ZRC=0x85020021=-2063466463=SQLB_END_OF_CONTAINER
"DMS Container space full"

2.问题诊断:
2.1版本确认表空间使用率
可以采用db2pd -db -tablespaces 计算表空间使用率 ​

2.2V9版本确认表空间使用率:

$db2 "select substr(a.tbsp_name,1,18) as name,substr(a.tbsp_type,1,10) as tbstype,a.TBSP_USING_AUTO_STORAGE as AUTO_STORAGE,substr(a.tbsp_state,1,8) as state,a.tbsp_total_size_kb/1024 as TotalMB ,a.TBSP_PAGE_TOP*a.TBSP_PAGE_SIZE/1024/1024 as top_size_mb,a.tbsp_used_size_kb/1024 as UsedMB, a.TBSP_UTILIZATION_PERCENT as UsedPer ,b.CONTAINER_NAME from sysibmadm.tbsp_utilization a, sysibmadm.SNAPCONTAINER b where tbsp_type='DMS' and a.TBSP_ID=b.TBSP_ID order by AUTO_STORAGE,UsedPer desc"

2.3 自动存储表空间满:
一般自动存储不会更多关心表空间使用率,但如果自动存储表空间满,说明表空间指定的文件系统满了或者对应的逻辑卷满;

3.处理方法
3.1 文件类型的容器:先确定容器所在的文件系统有足够空闲空间,再扩充表空间;
3.2裸设备类型的容器:确定容器所在卷组有空闲空间后,扩展裸设备对应的逻辑卷的大小后,再扩充表空间。
扩表空间数据库命令为:

$db2 connect to <dbname>
$db2 "alter tablespace <tablespace name> extend(all NG)"

注: 表空间增加的大小:容器数量*N,N为每个容器增加的大小。

版权声明:本文为博主原创文章,未经博主允许不得转载。

DB2