基礎(chǔ)技巧 | 如何查看數(shù)據(jù)庫(kù)的大小
通常我們?cè)谧鰯?shù)據(jù)庫(kù)備份(表空間備份)之前都要先知道數(shù)據(jù)庫(kù)(表空間)的大小,然后來給備份文件分配空間同時(shí)也可以大致估計(jì)下備份需要的時(shí)間。
下面介紹幾種查看數(shù)據(jù)大小或者表空間大小(表空間備份)的方法:
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. 統(tǒng)計(jì)所有節(jié)點(diǎn)表空間使用率
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 替換成要查的數(shù)據(jù)庫(kù)名稱;
3.查詢數(shù)據(jù)庫(kù)大小的操作
db2 "select (sum(total_pages)* 4096)/(1024*1024) Tot_allocat_spceinMB from table(snapshot_tbs_cfg(' ',-1)) TBS_SPCE"
這里的4096是默認(rèn)的4K 的pagesize的值,可以根據(jù)實(shí)際情況修改;
4.根據(jù)表空間使用情況估算數(shù)據(jù)庫(kù)大小
首先連接到數(shù)據(jù)庫(kù):
db2 connect to db_name
查看表空間detail :
db2 list tablespaces show detail
如圖可以看到該數(shù)據(jù)庫(kù)下有多個(gè)表空間,我們選取數(shù)量級(jí)***的表空間參與計(jì)算(如果存在多個(gè)數(shù)量級(jí)相同且為***數(shù)量級(jí)的表空間時(shí)需要先將他們累加起來)如紅絲邊框所示;我們將藍(lán)色框內(nèi)的幾個(gè)忽略不計(jì)(因?yàn)橄鄬?duì)于大的表空間而言這幾個(gè)表空間只是零頭);
計(jì)算公式:
(Total pages * Page size) / (1024*1024) GB
帶入計(jì)算 :
(174030848*4096)/(1024*1024)GB ~ 679.808 GB
和方案3的結(jié)果比較下:
可以發(fā)現(xiàn)估算出來的結(jié)果和方案三得出的結(jié)果差距不大;這種方法比較簡(jiǎn)單也不許要記住復(fù)雜的代碼;
先介紹這4種方案,后續(xù)發(fā)現(xiàn)有趣的方法再補(bǔ)充。