eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

July 23, 2014

Oracle 12c新特性:IN-Memory Option - 列存与压缩

在12c的In-Memory Option选件之中,数据在内存的独立区域中按照列式存储,数据是被压缩存放的,内存与列式压缩可以极大提升查询的性能,下图是IMO的示意图:

inmemorycolumnar.png

接下来我们来验证一下列存的压缩比率和查询性能。

首先查看IMO的内存分配情况,初始启动数据库,可以看到1MB Pool分配了大约3M的内存空间:

imoareaclean.jpg

接下来将一张数据表设置到内存中,并且通过查询加载:

keepinmemory.jpg

在加载过程中,内存使用增加,直至完成:

billpopulate.jpg

由此我们可以根据数据表的大小和内存分配空间,计算出内存列式压缩的比率。BILL表共使用内存大约300M:

SQL> select (313524224 + 720896 + 3145728)/1024/1024 MB from dual;

MB

----------

  302.6875

而该表在行式存储上占用了 952 MB:

SQL> select bytes/1024/1024 MB from DBA_segments where segment_name='BILL';

MB

----------

       952

这意味着使用列存,使得存储空间压缩到了原来的30%,这是一个计费的测试数据表,在使用IMO查询,全表扫描仅用了80ms就完成了查询:

inmemoryquery8.jpg

在以下测试中,我们创建一个非IMO对象,基于一个字段进行Distinct查询,在查询结果中,响应时间分别为1320 ms和70 ms,也有19倍的响应差距:

diskinodistinct.jpg

以下是执行计划及逻辑读等统计信息输出:

inmemquery8.png

Posted by eygle at 11:15 AM | Permalink | OraNews (234) | Oracle10g/11g (109)

Oracle 12c新特性:IN-Memory Option - 缓存与参数

2014年6月,在Oracle 12c的12.1.0.2版本中,Oracle正式发布和引入了基于内存和列式计算的In-Memory Option (以下简称IMO),这距离Larry在2013年OOW上发布这一特性已经过去了近10个月。

2014年7月22日,Oracle正式提供了12.1.0.2版本的数据库产品下载,可以通过:

https://edelivery.oracle.com/ 

下载该产品的最新版本。

OTN上,Oracle也随后发布了下载链接:

12c020.png

下图是IMO特性的原理图,通过在内存中开辟一块独立的区域,Oracle将指定的表或者分区以列式内存存储,但是在存储上,仍然以一份行式存储,这就需要额外的内存空间。

inmemorycolumn.png

当然,内存对于Oracle来说从来都不是问题,为了配合IMO特性,Oracle此前已经推出了SuperCluster M6-32一体机,该服务器满配可以配置32 TB内存,这是一个内存快速扩展的时代:

supercluster632.png

我们来看一下Oracle广为关注的这一新特性的表现。

IMO的缺省的参数有:

SQL> select name from v$parameter where name like '%inmemory%';

NAME

------------------------------

inmemory_size

inmemory_clause_default

inmemory_force

inmemory_query

inmemory_max_populate_servers

在数据库启动时,可以看到SGA中分配的Inmemory Area区域:

SQL> show sga

Total System Global Area 2147483648 bytes

Fixed Size     2917936 bytes

Variable Size   402655696 bytes

Database Buffers 1191182336 bytes

Redo Buffers   13856768 bytes

In-Memory Area   536870912 bytes

启用IMO特性,需要设置inmemory_size参数,指定可以作为内存列存的内存区域,该参数为静态参数,以下语句将该内存指定为800M,重启数据库使得该参数失效:

SQL> alter system set inmemory_size=800M scope=spfile;

System altered.

除此之外,另外一个关键参数是:inmemory_max_populate_servers 。该参数设置用于将数据加载到内存的后台进程数量。以下将该参数设置为2 :

SQL> alter system set inmemory_max_populate_servers=2;

System altered.

此后可以通过在表或者分区级别设置INMEMORY选项,将该表数据设置存储在内存中:

SQL> alter table accbill inmemory;

Table altered.

以下通过测试来演示一下IN-Memory表的查询性能,以下执行计划中的INMEMORY意味着这是一个IMO查询,逻辑读仅为7,较常规表大大缩减:

inmemory.png

如果我们将该表移出IMO内存,可以看到其逻辑读变成了4076,执行效率也肯定大大下降:

noinmemory.png

通过视图V$INMEMORY_AREA可以查询内存区域的使用情况,其中USED_BYTES表明当前已经使用的内存:

inmemoryarea.png

注意,V$INMEMORY_AREA中的POPULATE_STATUS代表了当前数据向内存中加载的进度,在Done之前的查询不能充分使用内存列式运算。

populating.jpg

如果内存设置不足以容纳指定的数据表,则状态会显示为"OUT OF MEMORY",这就需要去增加内存设置,或者减少Cache的对象数量。

 

Posted by eygle at 8:21 AM | Permalink | OraNews (234) | Oracle10g/11g (109)

July 18, 2014

贺 恩墨学院OCM认证100人100%一次性取得认证

恩墨学院经过两年左右的发展和拼搏,近日迎来100人通过OCM认证的庆祝日,这是一个值得纪念的日子。目前恩墨学院已经能够提供OCM全线的认证培训,包括Oracle 10g OCM、Oracle 11g OCM,这100人之中,11g的认证比例已经达到了近20%,其中女同学比例达到了 7% ,七朵金花尤其可贵。

恩墨学院院长 侯圣文 在致辞中这样写到:

【恩墨百人OCM金榜题名】又有十五名恩墨学员一次性通过(10g、11g)OCM大师认证,截止到目前共有101名学员一次性通过OCM认证!不畏艰险,追求卓越,是你们每一位的座右铭。感谢你们选择了恩墨,选择了相信恩墨。获得如此殊荣,恩墨与有荣焉,为你们感到骄傲

虽然行业里对认证有各种不同声音,但是OCM通过严格的训练和实际上机的考试,对于每一位学员的压力和挑战都是巨大的。恩墨学院还不断开发和总结来自于实践的案例课程,不断通过增值的培训让大家获得更多的知识和锻炼。

恩墨学院,力争做到最好,以不懈的努力回报大家的信赖!

enmoedu100ocm.jpg

Posted by eygle at 8:20 AM | Permalink | OraNews (234)

July 17, 2014

Oracle 2013年数据库市场份额47.4 - 再居第一

根据Gartner在2014年3月发布的调查报告,Oracle数据库的市场份额在2013年再次占据第一的位置,以47.4%超过了随后4个厂商的总和,此前Andrew Mendelsohn曾在多次活动中提及Oracle取得的这一成绩。回顾一下,2012年Oracle的占有率为48.3%,2011年Oracle的占有率是48.8%,2010年Oracle的占有率是48.1%。

总体比较下来,这是4年以来Oracle的占有率首次低于48个百分点。

Oracle官方网站中,可以看到Oracle的第一位置公告,公告称Oracle份额超过第二位28%,并且高于接下来四家厂商的总和:

oracle2013marketshare.png

在2013年RDBMS市场份额中,各厂商的比例分布如下,其中Oracle 47.4%,Microsoft 19%,IBM 17.7%,SAP 7.0%,微软超过了IBM跃居第二位,SAP出现显著增长,由2012年的5.8%上升到7.0%,上升了1.2个百分点,而IBM则正好下降了1.2个百分点:

gartner2013O474.png

回顾一下2012年的市场份额情况,可以稍为对比:

54b4ff56jw1e6qplywgx3j20r70fkn15.jpg

关系数据库市场Oracle仍然是无可动摇的王者,竞争在其他领域已经移师。

Posted by eygle at 5:49 PM | Permalink | OraNews (234)

June 17, 2014

去"I":四川电信Oracle数据库迁移到虚拟化平台

近年,去"IOE"呼声迭起,很多传统企业纷纷效仿阿里巴巴的去"IOE"实践,尝试去商业化软件,转向开源和开放式架构。在去IOE的路线上,最核心的Oracle数据库最难去除,而硬件部分的IE容易通过开放式架构替换。

所以目前大家认可的稳健路径是:

  1. 通过X86平台替换高端小型机系统;
  2. 通过开放式存储解决方案,替换高端存储;
  3. 通过整合减"O",缩减不必要的Oracle软件投资;

在这样的形式下,很多用户开始了去"I"化,四川电信公司是电信集团乃至运营商领域,最早开始尝试核心系统去IBM小型机的企业,在2014年5月,四川电信将最后也是最为核心的系统CRM迁移至X86系统上,至此四川电信的所有Oracle数据库,包括BOSS、CRM都运行在了X86的开放式平台上

云和恩墨公司在这个项目中承担了数据库优化、升级、迁移等核心工作,为此积累了大量的经验。以下转引TechTarget的报道文章,用户在其中揭示了更多的细节。

http://www.searchdatabase.com.cn/showcontent_82953.htm

【TechTarget中国原创】 从近两年开始,一场起源于国内某知名互联网企业的"去IOE(代指由IBM小型机、Oracle数据库和EMC高端存储为代表的封闭式高成本IT架构)"运动在国内引起了巨大反响,一些传统企业也开始纷纷效仿,希望通过去掉IOE实现成本的降低,并让IT架构更灵活可控。

然而对于一些IOE的重度用户,比如金融、电信企业等,去掉已经采用多年且磨合成熟的经典组合谈何容易。将核心的业务应用迁移到新的平台上,需要考虑的问题很多,这使得大部分企业对去IOE只能纸上谈兵。当然,在这个方向上总要有先行者。据了解,四川电信在今年5月,成功将核心CRM系统的Oracle数据库从IBM P595小型机迁移到基于x86的私有云平台上。对于这次成功的去"I"项目,TechTarget记者也有幸采访到了四川电信企业信息化部总经理梁天健和运维部经理李华,让他们来讲述一下项目背后的故事,以及对去IOE的看法。 

小型机vs. x86虚拟化平台 

究竟是小型机还是x86?对于这个问题,梁天健说:"只有大金主才有实力不必纠结于这些事情,我们不是。"

在大家的印象中,国内的电信运营商应该是不差钱的,但事实并非如此。为了提升数据库的缓存命中率,为了增加数据库的并发连接数,这些都需要对小型机进行内存等硬件资源的扩容,动辄几十、上百万的预算对四川电信来说已经成为一种压力。梁天健测算了CRM系统数据库向x86迁移带来的成本节省:采用x86平台,以设备生命期周期3年计算,服务器+虚拟化软件+电费+维保费用,9年的成本是700万左右 ;采用小型机,以设备生命周期8年计算,服务器+电费+维保费用,8年的成本是1800万左右。当然,成本只是一方面的考虑。在梁天健看来,从小型机迁移到x86 PC服务器上还存在着诸多的好处。

"四川电信这次向x86平台的迁移,并不是去IOE大潮下的一场秀,而是IT基础平台发展的必然选择。"梁天健说。

据了解,四川电信在08、09年就已经开始在IT系统中引入x86及虚拟化;2010年实现了将web服务器还有小型数据库运行在x86虚拟化环境上;2011年实现了重要系统J2EE Server、应用、非关键系统数据库运行在x86虚拟化环境上;同时又在前两年实现了x86虚拟化环境向统一私有云平台的转换。因此这次将核心数据库迁移到基于x86的私有云平台上是一个合乎发展进程的必然事件。

四川电信分公司核心数据库迁移现场

在梁天健看来,使用虚拟机在满足四川电信的业务需求上没有任何问题。从可用性来说,自2010年以来,Oracle数据库还没有出现过由于虚拟机层面导致的问题;而对于性能,单纯的虚拟化在I/O方面的确会有些损失,但带来的影响并没有足够大到引起I/O不足的地步。

实际上,使用虚拟化平台还有以下几个明显的好处:

  1. 实现标准化管理:在某些大型企业管理里面,数据库的部署可以说是五花八门,跟部署人员的水平和习惯有很大关系,安装目录、版本、补丁、系统参数以及部署不当导致问题和隐患的情况是非常多的。使用虚拟机模板来部署,版本、补丁等实现了标准化,这是系统运维和管理标准化的基础。
  2. 高可用性:对于物理机,特别是小型机,如果机器故障或者是停机维护,时间是相对较长的。而对于虚拟机来说,换一台资源池中的其他机器来启动虚拟机,停机时间相对可控、较短。对于重要系统,虚拟机本身(主要操作系统)也是可以备份的。将一个稳定系统备份之后,即使发生rm /这样的错误命令,恢复起来也比重装或从磁带恢复要快。
  3. 硬件升级更为方便:如果物理机的性能不足以支持系统,或者机器老化,再或者购置了新的机器用来代替原来的设备,只需要将虚拟机在新的机器上运行即可。迁移十分方便快捷。
  4. 集中管理,集中监控,提高运维效率:虚拟化平台本身带有集中管理和监控功能,这对大型企业环境来说是非常具有价值的。 

着手去掉小型机 

梁天健表示,对于电信运营商、银行这种大型企业来说,系统的可用性是运维部门KPI的重要组成部分,一个系统的运行稳定与否,通常是与系统的负荷有关。比如一些BUG(包括操作系统的BUG)就是在高并发高负载下出现的。越大型的系统,影响可用性的因素就越多。对于IT部门来说,可能会面临着这样的情况:辛辛苦苦几个月,熬了几个通宵,结果系统中断时间过长,抹杀了所有的努力。因此到目前为止,在国内电信、银行等企业将核心业务系统的Oracle数据库迁移到以x86为核心的虚拟化平台上,这样的案例是非常少见的,而四川电信就是其中之一。

据了解,为了保证整个迁移过程的顺利进行,四川电信从去年就启动了项目计划。同时为了确保迁移后系统的平稳运行,实施优化先行的策略,四川电信还引入了专业合作伙伴对CRM系统提供优化建议,使得一期优化整体性能提升超过了30%。

"实际上因为之前已经有大量的x86虚拟机平台的实施及维护经验,因此单纯将数据库迁移到虚拟化平台并不是我们最担心的,"梁天健说:"由于此次迁移还同时将Oracle数据库的大版本升级到11g,应用上对于新版本数据库能否适应,是否会有意外的性能波动,才是最需要关注的难点,这也是我们需要聘请一些专业合作伙伴的原因,他们在项目中提供了专业咨询并负责升级迁移过程中应用系统的性能评估、优化及保障,非常感谢这些合作伙伴的辛苦付出。"

据了解,由于这是国内首次将电信级核心数据库迁移到虚拟化平台中,四川电信将CRM数据库的升级迁移分成了两个大区依次进行,在今年的5月初先进行了A大区的迁移,然后经过一段运行考验,在5月下旬继续进行了B大区的迁移。目前整个CRM系统已经在x86虚拟环境中稳定运行了一个多月,事实证明四川电信这次迁移升级是完全正确的选择。

迁移前后的性能对比 

四川电信运维部经理李华是本次迁移升级项目的现场指挥,据他介绍,本次迁移项目开始之前,四川电信在IBM P595小型机上运行Oracle RAC集群,P595是Power 5时代最高端的IBM小型机,即使满配CPU才64核,而由于成本问题,最初配置的CPU不足,同样每个节点内存只有近200GB,而现在每个节点最高连接数为8000,同时由于主机上一些遗留配置问题,结果只能给数据库分配不到50GB的缓存,这就导致了高端设备配置低端化,资源紧张。

在迁移之后,两节点的Oracle RAC升级为11.2.0.3,运行在以PC服务器为物理机的虚拟化环境中,每个节点内存为256GB(物理机实际有1TB内存),给数据库分配了128GB SGA,内存剩余量还很多(80G以上),这就是开放式架构的低端设备配置高端化,性价比相当优越。

由于低端设备高配化,在业务高峰期,新系统中两个节点的CPU利用率都不超过20%,即使一个节点发生故障宕机,由单一节点来负载所有业务,CPU也不会超过40%。而原运行在P595小型机上的系统,在业务高峰期单个节点的CPU占用通常会在50%以上,如果高峰期一台机器意外宕机,实际上剩余单机面临的压力会十分巨大。 

最后如果再从性价比来看,这样一台几乎顶配的x86 PC服务器的价格远远低于同等计算能力的IBM小型机,价格大约在30万人民币左右,而后者的价格通常都是数百万。

对于更详细的性能对比,TechTarget记者还采访到了负责本次迁移升级项目系统优化及性能保障的云和恩墨公司西区总经理熊军,他向我们展示了两幅性能图表:其中CPU Time技术指标是衡量一个数据库系统在CPU上花费了多少时间,在同等业务负载的情况下,如果CPU Time越低则意味着CPU的使用效率越高。从迁移前后两幅图标的对比可以看出,迁移前CPU Time的平均使用为10左右,而迁移后降为平均7.5,也就意味着CPU效率提升大约25%。这样的数字再参考上面的硬件价格比,实际上是以更低廉的价格换来了更卓越的性能。

图一 迁移前CPU性能图表

图二 迁移后CPU性能图表

"去O"不如"减O"

在成功去掉小型机之后,TechTarget记者还向梁天健询问了关于去E(EMC存储)和去O(Oracle数据库)的话题。

梁天健认为,四川电信的私有云平台是架构在高端存储上的,去E实际上成为一个难题。不过在去E之前,对于IT基础架构还有其他可以做的事,比如将网络从1Gbps升级到10Gbps,以适应数据爆炸对网络带宽越来越多的要求。如果要去E,那么存储虚拟化、软件定义存储也许是可以实施的方向。而如何用好SSD硬盘来提升存储的IO能力比去E更重要。目前四川电信已经在这个层面开始探讨,计划孕育下一轮存储层面的技术变革。

再谈到去O,梁天健的态度很明确,从技术层面来讲,目前很多企业连Oracle这样具有高可用、高性能、易用性强的数据库都没有用好,去O根本无从谈起。对于这些企业,他们的首要目标应该是提升运维和开发水平,而不是为了去而去。真要谈去O,可能MySQL会是首选。而MySQL数据库在复杂SQL、数据存储等方面都有着不少的缺点。从成本上说,除了国有几大行和中移动等少数"土豪"之外,其他企业在Oracle上所花的成本相对于其他投入来说,并不算高。如果真换成MySQL,每年所花的成本可能会远远大于使用Oracle的成本。

那么是不是在数据库层面,传统企业已经没有可以改善的余地了?梁天健认为答案是否定的:"我们不去O,但是我们可以尝试减O。何谓'减O'?就是将假设现在的200个独立的Oracle数据库整合到20个更大型的Oracle数据库中去。"这样做的好处是显而易见的:

  1. 减少硬件开销,合理利用硬件资源池。很多独立的Oracle数据库系统只使用了5%的CPU,只用了20%的内存,只用了几十GB甚至几个GB的存储,但是它用不到的硬件资源也无法简单地分享给其它系统使用。整合在一起,正可以高效利用所有硬件资源。
  2. 减少管理困难度。管理数百个独立的Oracle数据库在复杂度上超过管理几十个数据库。

当然,"减O"同样具有风险,实施需谨慎。梁天健认为,以前一个系统出现故障,也就是影响这一个系统,但是整合在一起,一个系统的数据库占用了100%的I/O,会导致其它的系统也同样受到干扰。这需要专业的资源控制来尽量降低风险。此外,多个数据库整合在一起,新的硬件到底该具备怎样的计算能力、存储能力?性能容量规划具体该如何计算?这需要更加专业的规划设计才能做到。对于这样的方案,梁天健称四川电信还会继续大力发展跟第三方专业服务商的合作,以期在不远的将来可以开始逐步实现"减O"工程。

"总而言之,到底要不要去IOE,是由企业IT平台架构和业务发展需要决定,而不是一场运动,企业切忌盲目跟风。"梁天健说。

Posted by eygle at 3:20 PM | Permalink | OraNews (234)

近期发表

  • ACOUG校园行 - 南阳理工学院技术分享 - May 11, 2014
  • 清华大学软件学院 - 技术交流与分享记 - April 18, 2014
  • DTCC 2014 - 数据库技术大会五年 - April 12, 2014
  • 【媒体】LSI 有新招:卖闪存拉上Oracle ACE - January 10, 2014
  • 云和恩墨:闪存方案逐步走俏传统企业 - January 9, 2014
  • 《深入解析Oracle》修订版获ITPUB投票榜首 - January 8, 2014
  • Oracle数据恢复 - 注意Expdp导出文件可能初始写入损坏 - January 7, 2014
  • 新年献礼:《深入解析Oracle》一书开源下载 - December 31, 2013
  • Oracle SQL Developer 4.0发布-AWR报告等新功能 - December 16, 2013
  • 2013 Oracle技术嘉年华回眸 - 中西合璧 异彩纷呈 - November 27, 2013


  • CopyRight © 2004 ~ 2012 eygle.com, All rights reserved.