Oracle Database In-Memory (12.1.0.2) Frequently Asked Question

Oracle Database In-Memory选件于美国时间6月10日已经发布,发布会视频参看:http://www.oracle.com/us/corporate/events/dbim/index.html

什么时候Oracle Database In-Memory选件能够发布?

该选件将包含在Oracle Database 12c的第一个Pacthset(12.1.0.2)中一起发布。

价格如何?

价格会在发布日的时候决定。

新的Oracle Database In-Memory选件是否会替代In-Memory Database Cache(就是TimesTen技术)选件?

当然不,完全不一样的应用场景。In-Memory Database Cache是在应用程序层通过TimesTen来管理的内存性质的数据库,这是为了让OLTP应用享受到对于存储在Oracle数据库中一部分表的超低延迟访问而设计的。

Oracle Database In-Memory选件是否会替代TimesTen?

当然不。像上面所说,TimesTen通常是部署在应用层的,可能是作为一个独立的数据库,也可能是作为在Oracle数据库前面的In-Memory Database Cache。TimesTen提供的是超低延迟数据访问,由此提供了极速的响应时间。由此受益的OLTP系统通常不会创建用于报表应用的索引,也因此通常无法从数据库层的Oracle Database In-Memory选件中获得多少性能提升。

Oracle Database In-Memory选件是否会替代Exalytics?

当然不。并不是所有客户都需要在他们的系统中拥有强力的分析能力,而Exalytics是Oracle的一体化策略分析平台。它提供了丰富的分析工具和可视化工具,以及大量的标准报表、预测分析、数据发现,是为了最优化地运行BI和EPM工作的平台,是对数据库层的补充而不是竞争。 Exalytics也不仅仅是针对Oracle Database 12c的,它可以处理多种数据源,包括Teradata、Oracle database 11g、SAP Netweaver等。

那么在Exalytics中使用的是什么关系型内存数据库引擎呢?

Exalytics使用的是TimesTen In-Memory Database for Exalytics。在TimesTen产品发展路线图中也包含着跟Oracle Database In-Memory选件相类似的列式存储技术,而且是使用的相同的底层列式处理架构。这项技术计划在2014年跟Oracle Database In-Memory选件一起在相同的时间窗口发布。实际上,TimesTen和Oracle Database In-Memory选件在Oracle公司内部是由同一个小组来开发的,共享相同的创新技术以及底层架构。

那么在Exalytics中使用的内存数据库引擎在未来会变成Oracle Database In-Memory选件吗?

没有这个计划。Oracle期望TimesTen会持续研发。

Oracle Database In-Memory选件是否会替代Exadata?

当然不。这个问题太幼稚,就不做解释了。

好吧,那到底什么是Oracle Database In-Memory选件呢?

这是一项新的技术,内置在Oracle数据库中,通过内存中的列式存储数据来获得超快的数据处理能力。

当使用Oracle Database In-Memory时,数据库的大小受限于服务器中的可用内存容量吗?

不。由用户来决定哪些对象会存在In-Memory列式缓存中。如果一张表太大了,无法完全缓存在In-Memory列存中,Oracle会尝试将尽可能多的数据保持在内存中(以列的形式),剩下的仍然存储在闪存或者磁盘中(以原来行的形式),这样的操作非常高效并且是完全透明的。 你可以有选择性的定义一部分数据库,比如将热表、热分区、经常访问的列放入内存中。这就让除了Oracle原有的那些跨越内存、闪存、磁盘的各种优化方式之外,Oracle Database In-Memory选件还能够专门为频繁访问的业务关键数据提供帮助。当然,如果数据库足够小,全部表都能使用Oracle Database In-Memory选件。

Oracle Database In-Memory选件只会对分析/报表类业务有帮助吗?

虽然确实分析/报表类业务能够从列式存储中获得最多的收益,但是其他类型业务也同样能够受益。比如通过减少需要的索引,就能够加速OLTP业务。通常在以前的混合负载业务中需要在表上创建很多的多字段索引来支撑报表类型的查询,如今In-Memory列存则对DML操作造成更少的影响,而又可以提供相同的查询性能。 减少索引还能够带来优化和管理的简便,DBA不再需要去rebuild那些碎片化的索引,也不再需要去研究为什么优化器选择了错误的索引。

从Oracle Database In-Memory功能中能够期望获得多少性能提升?

使用该选项能够为多种查询负载提供显著的性能提升。从一个非常简单的星型查询到一个非常复杂的具有多个子查询的SQL,就算所有的的表都在内存中,In-Memory列式缓存仍然会胜过普通的Buffer Cache。 比如说,In-Memory列存在查询很少列上的很多行时,会提供极高的性能,通常这类查询都是分析类的查询,在这类查询上使用In-Memory列存和使用普通缓存(Buffer Cache)相比,有超过100倍的性能提升。

当使用Oracle Database In-Memory选件的时候,我该对索引做些什么吗?

你可以保留以前的所有索引,就像以前那样运行你的应用。Oracle优化器完全能够感知到内存中的列式数据,只有当确认使用这些列式数据会有性能提升的时候才会使用到,如果优化器认为从索引访问中能够获得更好的性能,那么就会自动去读取普通缓存(Buffer Cache)中的数据,就跟以前一样。 不过,如果将一些多列索引设置为invisible,引导Oracle优化器更多地去选择列式缓存,可能会带来额外的速度提升。然后,你可以删除掉这些无用的索引,这样又能带来进一步的性能提升,因为Oracle数据库需要维护的索引更少了。

如果使用Oracle Database In-Memory选项,数据库现在的功能会受影响吗?

没有任何一项现有的Oracle数据库功能会受到Oracle Database In-Memory选项的限制;很多操作还能在性能上获得显著提升;一些原本为了提高性能所做的操作(比如创建索引)会变得不再重要;安全性、高可用性以及其它的所有功能都跟以前一模一样,完全不受影响。 当然在DML操作上会有一些额外消耗,因为In-Memory列存要时刻跟表数据保持同步,但是这部分列存是完全在内存中的,所以不需要额外的Logging操作。

Oracle Database In-Memory选项在高可用性上跟其它厂商的内存数据库相比如何?

因为In-Memory列存并没有给Oracle数据库施加任何限制,因此在高可用性上可以享受Oracle数据库完整的丰富的高可用解决方案,而其它厂商的高可用性均不太完备。

如何规划In-Memory列存所需要的内存大小?

In-Memory Area(用于保存In-Memory列存的内存区域)是SGA中的一块新的缓存池,该缓存大小由初始化参数INMEMORY_SIZE指定,如果一旦设定,最小是100MB。因为In-Memory Area是SGA的一部分,因此其最大大小受制于分配了其它所有内存池之后的SGA中的剩余空间。INMEMORY_SIZE默认是0,也就是不启用Oracle Database In-Memory选项。 由于In-Memory Area是一块静态区域,所以不会被自动内存管理算法所影响。 如果想要修改In-Memory Area的大小,需要重启数据库实例,在RAC数据库中,可以在各实例的内存中复制In-Memory列存,因此可以通过重启节点的方式来最小化对应用的影响。

在RAC环境中,是否In-Memory列存是在集群的所有节点中完全镜像的?

在RAC环境中,用户可以自行设定使用以下三种选项中的任何一种: 1. 在所有实例的内存中镜像相同的表数据。这样每个实例都会读取自己的本地内存,通常这用于较小的表。 2. 表数据分布在所有实例的内存中。这样每个实例内存中只会保存表中的一部分数据,没有冗余复制。 3. 表数据分布在所有实例的内存中,并且为高可用性保留2份镜像。这种工作机制很像ASM的条带化和冗余性。

Oracle ACE Program FAQ

Oracle ACE项目从今年开始增加了一个新的入门级称号,Oracle ACE Associate,这为更多有志于在Oracle技术社区做出贡献的技术人员打开了一扇更大的门。收到很多朋友询问,获得这个入门级称号应该具备怎样的条件?又如何申请呢?所以干脆将Oracle官方对于ACE项目的问答翻译成中文。
本文翻译自Oracle ACE Program FAQ
另,也可以点击Oracle ACE项目的官方页面以获取更多的信息。

什么是Oracle ACE项目?

Oracle ACE 项目(Oracle ACE Program)旨在认可和表彰那些在Oracle技术社区或者Oracle应用社区中有贡献的人士。这些人的技术娴熟并且乐于分享他们的知识和经验。
该项目包含三个层次:Oracle ACE Associate(以下简称为ACE-A), Oracle ACE, 以及Oracle ACE Director(以下简称为ACE-D)。“Associate”是该项目的入门级,是那些在社区中刚刚开始活动但是渴望在更高的层次做出贡献的人士;“Oracle ACE”则是那些已经在社区中做出卓越贡献的人士;而“ACE Director”则不仅仅是分享知识(通常是那些喜闻乐见的方式)还应该主动地思考如何提高社区活跃度并积极地与Oracle共同寻找达成此目标的机会。

哪些人有资格?

候选者应该是相应技术领域的专家,并且有强烈的意愿分享知识和经验。分享活动包括但不限于以下领域:

  • Oracle讨论论坛
  • 以技术白皮书、文章、代码、工具等方式呈现的内部贡献
  • 撰写Oracle书籍
  • Oracle相关的个人博客
  • 在相关活动中作Oracle演讲
  • 在Oracle用户组中参与活动
  • 在Java用户组参与活动

哪些人是合格的ACE-A?

任何相对较新(与Oracle ACE相比)加入一个社区的成员,已经开始为社区作贡献(在上述的至少两个领域中),并且积极地致力于为自己建立一个更具影响的社区形象。

对于ACE-A有哪些期望?

极具热情的做出社区贡献,提高在社区中的参与程度,以期在一年(12个月)之后达到Oracle ACE的标准。

成为ACE-A有哪些好处?

好处包括:

  • 在Oracle网站中被标志和推荐为“Associate”成员
  • 个人资料将更新到Oracle ACE页面中
  • 在OTN的技术论坛发帖时,将在个人信息上增加Oracle ACE Associate的专属图标 Smaller icon
  • 一份欢迎加入的小礼物
  • 会被受邀参加Oracle ACE项目的活动

成为Oracle ACE有哪些好处?

好处包括:

  • 在Oracle网站中被标志和推荐为官方认可的专家
  • 个人资料将更新到Oracle ACE页面中
  • 在OTN的技术论坛发帖时,将在个人信息上增加Oracle ACE的专属图标 Smaller icon

  • 一份表示感谢的小礼物

  • 会被受邀参加Oracle ACE项目的活动

ACE-A和ACE有什么区别?

Oracle ACE Associate是入门级别的ACE,任何人新加入了社区并且在至少两个领域开始做出贡献,都可以申请成为ACE-A,而Oracle ACE则是已经在多个领域做出贡献并且已经拥有了受人尊敬的社区形象。

如何申请从ACE-A晋升为ACE?

当成为ACE-A以后,在社区中保持活跃的参与度,再经过1年(12个月),必须提供在社区中参与的领域有所增加的证据,如果你认为自己已经满足条件,那么就提交一份完整的Oracle ACE提名表到oracle-ace_ww@oracle.com邮箱。

对于Oracle ACE有哪些期望?

Oracle ACE称号是用来认可在社区中做出卓越贡献的人士,Oracle对于该称号获得者的唯一期望就是继续保持自己在社区中的活跃度。

什么是Oracle ACE校友(Alumnus)?

对于Oracle ACE每年都会有一个年度审查,来确认是否还在社区中保持活跃。如果一个Oracle ACE不再在社区中保持活跃超过12个月,那么Oracle ACE项目办公室将保留把该人的Oracle ACE状态修改为“Alumnus”的权力,并且不再要求该人对社区保持贡献。我们欢迎这些过去的参与者通过ACE提名表再重新申请成为Oracle ACE。

如何推荐?

任何人都可以推荐。可以从此处下载提名表。

谁能决定成为ACE的资格?

Oracle ACE提名委员会,包括Oracle ACE项目办公室和Oracle产品管理小组的一些成员,对于每一份完整的Oracle ACE提名表都会进行检阅。

什么是ACE-D?

ACE-D不仅仅要满足对于Oracle ACE的所有需求,并且要致力与为Oracle公司和那些在真正环境中使用Oracle技术和应用的人们之间创造持续的对话渠道。大多数ACE-D都在某些方面(无论是技术层面还是社区层面)做出了卓越的贡献。跟Oracle ACE一样,Oracle公司的雇员不可以成为ACE-D。

成为ACE-D需要什么样的资格?

除了Oracle ACE的那些需求之外,ACE-D还需要具备:

  • 对社区做出持续的卓越的贡献,包括技术层面和/或社区层面
  • 良好的沟通技巧
  • 承诺之后12个月在社区的持续无偿贡献

ACED-D可以为社区做什么?

  • 经常与本地社区交流沟通
  • 向Oracle公司提供反馈,包括社区的反馈
  • 维护一个活跃的Oracle相关的博客
  • 在大会/会议/研讨会上发表演讲
  • 经常在Oracle讨论社区中回答问题

Oracle为ACE-D提供什么?

  • 在Oracle网站上和Oracle举办的活动中被标志和推荐为官方认可的专家
  • 每年一次在Oracle总部举办的信息分享会
  • 免费的软件
  • 与产品研发部门/策略部门对接
  • 在OTN上发表文章或者白皮书(有偿)
  • 在Oracle或者第三方活动中演讲的机会
  • ACE-D专属的讨论组
  • 在OTN的技术论坛发帖时,将在个人信息上增加Oracle ACE的专属图标 Smaller icon
  • 从Oracle ACE项目办公室获得的各种支持

成为ACE-D之后的要求对社区做出怎样的贡献?

候选者必须承诺在最少12个月内持续对社区做出贡献,在此时间内,期望如下:

前3个月

  • 与产品组参加至少一次Web研讨会
  • 在Oracle ACE-D论坛板块中介绍自己
  • 订阅感兴趣的Oracle研发新闻邮件
  • 建立/维护Oracle相关博客

前6个月

  • 定期参加产品组Web研讨会
  • 参与本地Oracle公司活动并演讲
  • 建立/维护Oracle相关博客
  • 在非Oracle公司官方活动中演讲
  • 在OTN上发布文章(有偿)

在12个月内

  • 在Oracle OpenWorld期间参加年度ACE-D信息分享会
  • 积极参加产品租Web研讨会
  • 参与本地Oracle公司活动并演讲
  • 在非Oracle公司官方活动中演讲
  • 建立/维护Oracle相关博客
  • 在OTN上发布文章(有偿)

我成为ACE-D之后有报酬吗?

没有。作为成为ACE-D的条件之一就是候选者必须同意义务无偿地为社区做出贡献。当然,如果在OTN上发布文章是有报酬的,并且参加官方的研讨会Oracle公司会承担差旅住宿的费用。

如何成为一个ACE-D?

提名表是向公众开放的,但是需要有现有成员或者Oracle员工支持。题名委员会将评估提交的提名表,并对资格和领域专业性做出审核。根据资格评估结果选出合适人选。Oracle公司对此保留最终裁决权。
Oracle ACE-D提名表可以从此处下载。

我已经是Oracle ACE了,想成为ACE-D,我该怎么做?

你必须证明不仅仅有之前对社区的贡献,还有在12个月的时间段内持续为Oracle公司和Oracle社区双向沟通做出的努力。如果你认为自己已经具备资格,请将完整的ACE-D提名表发给Victoria Lira victoria.lira@oracle.com

Teton, Yellowstone Driving – 2012 US Trip

【前言】
每次都是要等到一年后再要去美国参加Open World之前,才收拾心情,2012年的10月初我开车转了大提顿国家公园和黄石国家公园,选了几张照片放在这里算游记交差。

【正文】2012年10月6日-10月13日
我们从旧金山飞到盐湖城,租了一辆Jeep,这在国内上街会是很巨大的车,但是在美国西部的原野它完全不起眼。
IMG_0221

我们去了大提顿国家公园,这里的湖光山色,甚至比后面去的黄石更加让人着迷。
IMG_3557

美国的10月秋高气爽。
IMG_3583

白帆映影,心若安好,便再无烦恼。
IMG_3592

这份难以置信的蓝,沁人心脾。
IMG_3601

我们去了黄石国家公园,要赶在2012世界末日之前去看看,世界末日过了,我们现在还活着。居然找不到进黄石时候的公园招牌,只有一张出来时候的留影。
IMG_0159

黄石公园里面有广阔的平原,远处冒汽的地穴是黄石的特点。
IMG_3738

黄石公园里面也有山有水,眼界开阔。
IMG_3879

黄石公园里面还有最著名的各种热喷泉池。
IMG_0126

最后在回到盐湖城的时候,我们去看了最大的摩门教堂。
IMG_0019

在盐湖城的Apple Store,买了那时候刚刚发布的iPod五代。
IMG_0233