前言:本文档主要针对数据库的容量和性能估算,结合网上的一些文章,整理如下:
一、数据库容量的计算
1、数据库容量核心分析对象是数据库表,及配合数据库表的包括视图、索引、日志等相关的附属信息。
数据库在计算数据库容量的时候提供了一个可计算的理论模型:数据库表是由col组成的,每个col都有相应的长度,可以算出每行的占用空间,再根据业务的情况,可以算出每个表每月或者每天的增长量。数据库中所有表的大小总量根据这个模型也就可以计算出来了;
例ORACLE数据库来说:char类型是多少字节就多少字节,而varchar类型可变长可以按2/3长度折算。number类型可变长度最多占用22字节,平均按10字节估算足够。date类型占用7字节。
进行粗略计算的时候可以直接参考ORACLE的数据字典,脚本如下:
select * from user_tab_columns where table_name='MSEG';
也可以通过数据字典计算的每行的平均长度进行计算
select num_rows,blocks,avg_row_len from dba_tables where table_name='MSEG';
通过以上的办法可以得出初略的计算出每个表的大小,同时根据经验值,索引占用的总大小差不多为表总大小的1/3,这样大概就可以计算出整个数据库的总大小了。由于ORACLE数据类型的多样,表的数量繁多,所以通过这种方式进行空间的计算需要大量的工作,但是这至少提供了一种评估的模型;
2、另外一种计算的方法
当系统运行一段时间之后(比如三个月),这时候已经很清楚当前的数据总量和占用的总空间大小,通过对未来的业务估算可以很容易的计算出未来1年、3年的整体数据库容量大小;
比如一个系统上线3个月后,数据库的大小达到了300GB,如果这三个月的业务属于正常范围,那么很容易计算出每个月差不多增长100个Gb,但是行业之间总是有差异的,比我鞋服行业就有分春夏和秋冬的区别,一件衣服夏天的和冬天的主数据量是不一样的,按这种方式会有比较大的误差,但是数据量级别应该是正确的,对于这种系统运行完一年之后进行容量的评估将会比较正确;
这种方法计算容量有一个很明显的弊端:需要在系统运行一段时间之后才能计算出来,但是这个时候相应的硬件和存储都已经采购完毕了,只能在一段时间之后进行扩容。
3、参考同行业同系统之间的数据容量
这是一个最便捷的办法,在上SAP之前公司内部最大的系统数据也才500GB左右,所以在脑子里面对数据容量的大小也是一直停留在百GB的水平,刚好同行业中的其他公司也上了SAP,经过了解他们上SAP的模块和我们差不多,运行一段时间之后数据量已经达到了TB的水平了,每天数据的增长量是GB级别,这样一下子对整个系统的数据量级别有了个很明显的认识。在采购硬件的时候就不会有太大的偏差。
二、内存需求的计算
涉及到内存的缓存命中率的关系,数据库系统的内存的分配跟数据库总容量大小有很大的关系,行业的经验是当缓存容量达到数据库总容量的5%时性能较好,因此确定了数据库的大小之后缓存的大小也就可以的出来了。
例如在aix平台下面一个1TB的数据库
1、操作系统本身所占用的内存 128MB
2、应用程序所占的内存 256MB
3、数据库缓存 50GB
4、合理的内存利用率75%
总计 67GB
考虑到数据的保存时间5年(一般3到5年要做一个数据结转),因此数据库最大容量有可能达到5TB,所以该主机的内存达到300GB可以满足未来5年的业务需求。
总结:站得高尿得远,dba主动去考虑一下整体的it架构需求,当这种思考点多了站的高度也就高了。因为整个IT架构里面dba属于一个很重要的岗位,性能的规划、存储容量的规划只有dba最清楚,当dba不参与的时候,就变成了“猜”,根据系统的重要性去采买硬件、几个cpu、多少内存、多少存储,这些都是凭着系统的重要性和领导的重视程度、预算的多少,供应商当然也会提供相应的参考方案,但是他们提的方案肯定是越高越好的。
当it的领导不懂技术的时候,dba的价值有时候就会被低估,当dba自身的高度提升到it的管理层面的时候,这个时候自身的价值才能充分展示出来,因为有些工作除你dba,其他人做的都没你好。
........................................................................................................................................................................
本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
........................................................................................................................................................................