大家知道,Oracle的数据库License和支持费用是很贵的,但是,Oracle又是很多企业关键业务的首选,不得不用。今天,我们就简单聊一下,从服务器和存储的角度,特别是从存储的角度,如何帮助大家减少Oracle的License和支持费用。
我们先来看看一个普通的中型ORACLE普通数据库(不包括RAC)的费用构成。下面的数据我直接引用国外一个博客网站的分析,虽然有点老,但基本可以说明问题。
这是假设的条件。存储采用普通中端存储,容量是10TB。
这个是价格的情况。大家知道,Oracle企业版的License是按照CPU的核数来计算的。
我们来看看整个系统的价格组成,我们发现,存储才占17%的总费用,而Oracle数据库的费用(包括License和服务)占比居然高达80%。
这个是中小企业的情况,虽然离谱,但还不算最高的。我们来看看更离谱的,Oralce RAC情况。一般来说,大企业都采用RAC,一般4个节点来提供高可用性。
假设的前提不变,只是容量从10TB变为20TB。
这是价格的情况。这里配置了4台服务器,构建一个4节点的Oracle RAC集群。
这是价格的组成。我们看到,存储只占总费用的8%,而Oracle的License和服务一共占据了总费用的89%。你说,这不是抢钱是什么?
从上面的分析,我们可以看出,Oracle的费用一般占比超过80%,也就是它是整个投资里面最大的部分。
因此,如果你选择了Oracle,那么只有购买尽量少的Oracle License,这样就可以减少很多License的费用,从而也减少了服务的费用。而其他硬件,则尽量不要成为性能的瓶颈。
因此,省钱的原则就是:
1、采用最高效的CPU,尽量卸载各种处理到存储上,如重删压缩等;
2、采用最快的服务器和全闪存阵列,让外部硬件不能成为瓶颈,充分发挥购买License的作用。
那么,如何选择最高效的CPU呢?大家知道,Oracle的License是按照CPU和核数收费的,不同的处理器类型还有不同的系数。很多厂商拿各种服务器在TPC.ORG那里测试,你可以查到TPC-C的公开值,可以下载最新的TPC-C结果,然后自己计算。下面的计算结果虽然老,但是一样能够说明问题,我就直接拿来说事了。
我们看到,不同的处理器类型有不同的CPU Factor,不同的处理器还有不同的核数。根据他们的TPC-C成绩,可以计算出每个ORACLE License的性能。从结果来看,INTEL的CPU相比IBM的POWER来说,每单位License的性能最高,甚至是10倍以上的关系。
因此,选择X86架构的开放小型机作为数据库服务器就是最经济的方式。比如你可以选择华为的昆仑高端服务器,具有小型机的可靠性,但是支持最新的INTEL CPU,非常适合在关键的ORACLE数据场景下使用。
至于存储,为了使用简单而且不成为系统性能的瓶颈,我推荐全闪存阵列,而且最好支持在线压缩功能。关键是其重删压缩可以灵活选择打开或者关闭(以LUN为粒度),比如在ORACLE数据库场景,打开压缩性能无损,一般可以做到2:1的压缩比。而重删对于数据库基本没有作用,甚至还有负作用(比如控制文件和redolog一般为了可靠都是两份,你把它重删了其实更不安全),可以选择关闭,避免浪费存储的资源。当然,你可以在ORACLE层面做压缩,但是ORACLE需要License,而且需要占用服务器CPU的资源,这样会造成ORACLE费用的上升。
当然,除了采用最高效的硬件,尽量发挥ORACLE的性能,这样可以购买更少的License外,还有一些其他的方式。
大家知道,Oracle的标准版是按照物理CPU来收费的,而企业版是按照CPU的核数来收费的。
现在INTEL的单个服务器CPU已经很强大,甚至有几十个核,因此,如果能够采用ORACLE标准版,可能会大大节省ORACLE的费用。标准版最大的限制就是只支持4个物理CPU,但是现在单个CPU性能足够强大,大部分企业应该都能够满足。
这是采用标准版+RAC的价格。假设CPU更强大,只需要配置2个节点。
对比原来企业版4节点RAC的价格,整个投资减少了87%。这是一个非常大的节省。
如果企业版也只算2节点RAC,那么费用的节省也有76%。因此,如果标准版能够满足要求,那么你的节省确实是惊人的。
还有就是ORACLE RAC的必要性。大家知道,RAC的费用非常高,占企业版License的50%还多。RAC最开始主要用来扩展性能的,那个时候叫OPS,主要是那个时候单机的性能不够。但现在单机的性能基本不是问题,因此,现在RAC的最大卖点就是高可用性。因此,你可以评估,你的业务是否需要这么高的业务连续性?能否用其他方法来解决这些问题?因为ORACL RAC并行处理比较复杂(需要集群文件系统,共享锁啦等等),如果做主备的方式,系统则要简单得多。
要实现ORACLE数据库的经济性,由于oracle的费用是大头,采用最高性能的硬件消除系统瓶颈,让oracle在单CPU或核的性能最大化,就能减少需要的Oracle的License费用,从而也就减少了支持的费用。这就是我们以前常说的全闪存阵列能够减少Oracle License的原因。举一反三,其他的数据库或者甚至非数据库应用也是类似的。