中国领先的IT技术网站
|
|

基础技巧 | 如何查看数据库的大小

通常我们在做数据库备份(表空间备份)之前都要先知道数据库(表空间)的大小,然后来给备份文件分配空间同时也可以大致估计下备份需要的时间。

作者:仙道彰来源:talkwithtrend|2017-09-27 09:36

开发者大赛路演 | 12月16日,技术创新,北京不见不散


通常我们在做数据库备份(表空间备份)之前都要先知道数据库(表空间)的大小,然后来给备份文件分配空间同时也可以大致估计下备份需要的时间。

下面介绍几种查看数据大小或者表空间大小(表空间备份)的方法:

1.查看表空间的使用情况及其使用率

db2 " select substr(tbsp_name,1,20) as TABLESPACE_NAME,substr(tbsp_content_type,1,10) as TABLESPACE_TYPE,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 group by tbsp_name,tbsp_content_type,tbsp_page_size order by 1 "

2. 统计所有节点表空间使用率

db2 " select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)/1024/1024 as TOTAL_MB,used_pagesPAGE_SIZE/1024/1024 as USED_MB, free_pagesPAGE_SIZE/1024/1024 as FREE_MB from table(snapshot_tbs_cfg('db_name', -2)) as snapshot_tbs_cfg "

将db_name 替换成要查的数据库名称;

3.查询数据库大小的操作

db2 "select (sum(total_pages)* 4096)/(1024*1024) Tot_allocat_spceinMB from table(snapshot_tbs_cfg(' ',-1)) TBS_SPCE"

这里的4096是默认的4K 的pagesize的值,可以根据实际情况修改;

4.根据表空间使用情况估算数据库大小

首先连接到数据库:

db2 connect to db_name

查看表空间detail :

db2 list tablespaces show detail

如图可以看到该数据库下有多个表空间,我们选取数量级最大的表空间参与计算(如果存在多个数量级相同且为最大数量级的表空间时需要先将他们累加起来)如红丝边框所示;我们将蓝色框内的几个忽略不计(因为相对于大的表空间而言这几个表空间只是零头);

计算公式:

(Total pages * Page size) / (1024*1024) GB

带入计算 :

(174030848*4096)/(1024*1024)GB ~ 679.808 GB

和方案3的结果比较下:

可以发现估算出来的结果和方案三得出的结果差距不大;这种方法比较简单也不许要记住复杂的代码;

先介绍这4种方案,后续发现有趣的方法再补充。

【编辑推荐】

  1. 如何使用AWR报告来诊断数据库性能问题
  2. Oracle数据库中直方图对执行计划的影响
  3. 如何提高数据库性能?6招就帮你搞定!
  4. 你的数据库索引是否真的起作用了?
  5. MySQL树状数据的数据库设计
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员成长手记——网络组建、配置与应用

本书主要以“网管员的成长经历”为线索展开,虚拟出一个“新手”网管员的工作和学习环境,将网管员的成长分为4个阶段,以“网管入职充电→...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊