表空间对于DB2来说,就像一个容器,数据需要灌到这个容器里面。早上去项目,发现表空间报警提示马上满了,一定要提前扩容,不然数据库数据写不进去了。对表空间操作方式有2种:ADD与RESIZE。
本项目使用的DB29.7版本,估计不同的版本表空间扩容都差不多。
扩容表空间
DB2CMD中执行,先连上数据库:1
2su - db2inst1
db2 connect to ykspas3 user pas using pas
方式一:新增
1 | db2 "alter tablespace TBS_IDX ADD (FILE '/home/db2inst1/YKSPAS3/PAS_DATA/PAS_SPACE_IDX/TBS_IDX3' 30G)" |
文件改成项目对应的表空间实体文件。
方式二:调整
1 | -- 调整【resize立马查看发生变化】 |
表空间使用率
直接上SQL:1
2
3
4
5
6
7
8
9
10
11
12
13
14SELECT
tbsp_id AS ID,
-- tbsp_create_time AS CREATE_TIME,
tbsp_name as NAME,
tbsp_content_type AS TYPE,
tbsp_state AS STATE,
sum(tbsp_total_size_kb)/1024 AS TOTAL_MB,
sum(tbsp_used_size_kb)/1024 AS USED_MB,
sum(tbsp_free_size_kb)/1024 AS FREE_MB,
tbsp_page_size AS PAGE_SIZE
FROM SYSIBMADM.TBSP_UTILIZATION
--WHERE tbsp_name LIKE 'TBS_%'
GROUP BY tbsp_id, tbsp_create_time, tbsp_name, tbsp_content_type, tbsp_state, tbsp_page_size
ORDER BY tbsp_name
其他查询表空间SQL
查看表空间
1 | -- TBSP_UTILIZATION |
具体的区别有兴趣的可以baidu,这里作为参考SQL。
查看表空间列表
1 | db2 list tablespaces show detail |