前言
自 2001年首次发布后,Oracle RAC(Real Appliction Clusters,真正应用集群)一直是最畅销的 Oracle 数据库产品之一,也是 Oracle 技术领域中最难掌握的技能之一。
当Oracle产品线进化到11g时代,我们惊奇地发现,数据库家族有了太多的变化。例如,“服务器池”和“服务管理质量”,它们是在整合环境中满足服务级别的关键;Oracle Exadata 改变了云的采购与部署模型,提供了私有云(cloud in a box),从而打开了新的天地。Oracle 11g 还引入了一些关键的性能改进,如混合列压缩、智能闪存和智能扫描。同时,Oracle 11g RAC 也与Oracle 10g RAC 大不同了。
如果要用一个词来描述 Oracle 11g RAC 和 Oracle 10g RAC 的区别,那就是“规模”。Oracle 10g 的 RAC 定位于单库,而 Oracle 11g 的 RAC 定位于数据中心、私有数据云。所以,对于 Oracle 11g 的所有新特性,DBA 必须打破自己以往的思维局限,应该在一个更宏大的背景下来理解 Oracle 11g 的意义,否则就辜负了 Oracle 的一番苦心。
本书就是专为Oracle 11g Grid Infrastructure 而生的。
这是Oracle 11g RAC 的时代
根据谷歌趋势的数据,“oracle 10g”和“oracle 11g”这两个关键词的搜索量趋势如图1所示。Oracle 11g 从2007年开始进入人们的视线,一直处于上升通道,而Oracle 10g的关注度从2008年开始下降,但在这个时期Oracle 10g 的市场份额还占大头。到了2012年前后,两个版本打平,各占半壁江山。不过这个平衡没有持续多久,Oracle 11g 开始快速地占领Oracle 10g 原有的地盘,至此Oracle 10g 日渐式微。
图1 “oracle 10g”和“oracle 11g”两个关键词的趋势变化
再来看一下“oracle 10g rac”、“oracle 11g rac”、“oracle 10g grid”、“oracle 11g grid”这4个关键词的关注度趋势,如图2所示,这次的信息量就大了。
图2 RAC和Grid的趋势变化
首先,我们只看到了RAC对应的两条线,Grid对应的线基本看不到。这说明大家还是中意RAC的叫法,虽然Oracle一厢情愿的大力推广Grid,但至今还没有打响Grid的名号,任重而道远啊。
其次,与图1 不同的是,“oracle 10g rac”那条线已经触底,完全没有反弹的迹象,看来Oracle 10g RAC 退出市场的信号强烈。
让我们把镜头拉近,把时间跨度缩小到2012年1月至2013年10月,这时,关注度趋势如图3所示,其含义不言自明,这是Oracle 11g RAC 的时代。
图3 近两年的情况
本书特点
老子说过:“有道无术,术尚可求。有术无道,止于术”。
本书最大的特点是侧重于理论讲述和实战演练,尤其是对理论的剖析有一定的深度,并通过大量完整的案例来论证这些理论。DBA 和开发人员特点不同,对于开发人员来说,从某种角度上,强调创造力决定高度。但是DBA要求的是稳定压倒一切,DBA必须去适应自己所使用的产品,而不能期待产品去适应自己,更没有机会去改变产品,因此了解这个产品的工作原理是非常必要的。
本书对 Grid 进行了系统的介绍,没有跌宕起伏的故事、没有光怪陆离的情节、也没有故作高深的独门秘籍,只是把 Grid 的前世今生向读者娓娓到来。我会告诉你从Oracle RAC 到Oracle Grid 发生了哪些事情,以及为什么会有这些变化。当把这些变化放在一个宏大的历史背景下,我们会发现Oracle Grid 的技术变迁原来是那么自然流畅、水到渠成。
此外,本书并没有覆盖Oracle 11.2 的方方面面,像数据库本身的增强特性(如智能分区表、优化器的增强等),这些内容虽然也值得探索,但不在本书的讨论范围之内,所以也就没有涉及。本书只讨论与Oracle 11.2 RAC 有关的最重要的话题。
本书适用读者
云时代的RAC,书如其名,本书是关于RAC的,或者说是关于Oracle数据中心、私有数据云的入门指导,所以这本书适合于初、中级数据库管理员和数据库开发人员。
虽说Grid和RAC是一脉相承,但本书关注的是Grid何以成为Grid,也就是那些区别于RAC的变化,而RAC本身的内容,本书不做涉猎。如果你对RAC有一定基础,并做过类似的DBA 工作,但是由于条件所限,一直没有接触过Oracle 11.2 RAC,那么这本书就非常适合你。
这本书是专为Oracle Grid 11.2 而生的,不适合Oracle Grid 11.1 的读者,这两个版本差异较大。简单地说,11.1版本基本是10.2版本的延续,而11.2版本是全新的(至少在感觉上是这样的)。
本书涵盖了11.2.0.1、11.2.0.2、11.2.0.3这3个版本。如果没有特殊说明,那就是同时适用于这3个版本。对于那些只适用于特定版本的内容,我会明确标出。
本书结构与内容
本书分为4个部分,共18章。
第一部分 安装
工欲善其事,必先利其器。学习Grid必须先有环境,所以第1章和第2章作为本书的第一部分,将带领读者从无到有地搭建一个 Grid 集群。本书使用的是真正的物理机环境,而不是使用虚拟机。
如果读者具有一定的 RAC 使用经验,那么就会对安装过程的变化有所感觉。第2章就是在此基础上展开的。掌握这两章的内容,虽然不能说对 Grid 有多熟悉,但应该可以在应聘DBA的面试中多一份自信。
我曾面试过很多 DBA应聘者。我个人比较看重应聘者对基础知识的把握,对应聘者实战经验的要求反而不高。例如,我会关注应聘者对整体架构的把握,比如 Cache Fusion,至于他解决过多少ORA错误,我反而不那么看重。当然这也得感谢Oracle公司,新版本越来越稳定,Metalink上的方法总是比问题多。遗憾的是,虽然我遇到许多DBA应聘者他们的简历上都写着熟练甚至精通RAC,但几个问题下来,就可以发现他们还停留在 RAC 安装的水平上。所以,对于这些读者来说,我建议你们至少坚持读完第2章,这样起码能对Oracle 11.2 的一些变化有一个大致的了解。
第二部分 平台
这一部分包括第3~第8章,介绍的是 Grid Infrastructure(GI),简称 Grid。Grid这个概念在Oracle 10g 就已经出现了(Oracle 10g 中的“g”就是Grid),但生不逢时,不但没有火起来,还被后来的各种“云”赶超。今天回过头来看,出现这种情况并不奇怪,因为Oralce 10g 中的Grid 只是提了个概念,产品层面并没给予有力的支撑,自然难当大任。另外,Oracle 10g 中的“g”是用于数据库的,集群软件叫Clusterware,这也能看出来,Oracle当时对Grid的定位也比较模糊。
随着各种“云”的粉墨登场,业界充分见识到了平台的力量,显然,做一个网格化的平台要比单纯的数据库更富有“钱”景。那一刻Larry 顿悟了,于是Oracle 11g 里,除了DB网格继续发扬光大外,Clusterware也向Grid靠拢了。所以,在云计算的大背景下,借助各种耳熟能详的云产品,我们对Oracle 11g 这个Grid 的理解也就会越来越准确、越来越深刻。
本书的第3章和第4章介绍了Grid的组成。第3章为Grid画了一个素描,介绍了几个解剖工具,为第4章的抽丝剥茧做好了铺垫。这两章相辅相成,采用了“先见林、后见木”的描述方式,带领读者由浅入深地认识每个元素。
第5章和第6章介绍了ASM,用过Oracle 10g RAC 的读者一定对ASM 不陌生。所以,这两章只介绍Oracle 11g 中的变化。Oracle 11g ASM 的变化可以从大小两个层面来分析,小与大的区别如同量变和质变的区别。
先说小变化,也就是一些原有功能的升级或加强,这些内容有些琐碎,这里不一一列举,一并包含在第5章中。
重要的是大变化,ASM 有两大变化:第一,定位变化,在Oracle 10g 中,ASM 是数据库的一个辅助功能,算是一个特供产品;而在 Oracle 11g 中,ASM 被移到了Clusterware 中,并促使了 Clusterware 的改名,这个变化不像功能变化那么简单,而是产品定位的变化,从此ASM从特供转向了平台化。第二,功能平民化,更加接地气。Oracle 10g的ASM只能用于Oracle数据库。而Oracle 11g的ASM提供了ADVM和ACFS两个新功能,使得它可以作为一个通用文件系统。这样一来,文本、图片、电影、Word文档、PDF就都可以放到ASM上去,而且免费提供集群功能。这就是第6章要讨论的内容。
第7章介绍了SCAN,这是一个平台级的监听器。很多能当服务器用的东西都需要有一个入口,例如,Apache、Tomcat、防火墙、交换机都有监听器。自然Oracle数据库也有监听器,这就是我们熟悉的1521端口。既然Grid想做平台,就需要有入口,这个入口就是SCAN,可以把它理解为Oracle数据库的监听器,它也的确是用监听器实现的。但细节上还是有一些差异的,这些问题都会在第7章中说明。
既然 Grid 要作为一个平台,那么理论上它就应该支持各种应用,能为各种程序提供高可用性支持。如果只是一个单实例数据库,而不是RAC,那么该如何借助Grid平台来实现一定程度的高可用性呢?第8章就讨论了这个问题。尤其是我们知道Oracle只有双机互备而没有双机热备功能,所以IBM的HACMP一直很有市场。不过现在情况有些变化了,Grid提供了SIHA,虽然目前SIHA的效果尚未得到可靠的市场验证,但从理论上说,它就是一个双机热备的解决方案。
第三部分 私有云
这一部分包括第9~第13章,是本书的重点和亮点。这几章主要介绍了在Grid环境下的数据库用法的变化。注意我的措辞“用法的变化”,无法同步语音的确是一个遗憾。 “天低吴楚、眼空无物”。在Oracle 11g 中,如果还把眼光停留在数据库、RAC 这个层次,那么你就无法理解这几章中将要讨论的内容。你必须把高度提到“云”上,才能理解这些技术的必要性,也就理解为何现在会有越来越多动辄十数个节点的 RAC 的出现了,从而能理解为什么基于Oracle的“数据中心”很容易规划。
这些技术包括RAC One Node(第9章)、Service(第10章,一个重新焕发活力的老技术)、Server Pool(第11章),这一系列让人眼花缭乱的“组合拳”会让你对Oracle数据库有全新的认识,甚至能对Oracle 12c 中的“c”若有所思、似有所悟(虽然本书未涉及12c的内容)。
第13章是给开发人员准备的,如果你是一个纯粹的管理型DBA,不对开发组提供支持,可以忽略这一章。
第四部分 高可用性
这一部分包括第14~第18章,主要讨论了Grid的高可用性。我曾经把DG作为RAC高可用性的不二之选,因为当时我还不知道GG为何物。随着Oracle近几年的一系列收购动作,尤其是对GG的收购,我们终于走到了要和DG说再见的一天。当然,不是说DG会彻底退出历史舞台,但就我目前所接触到的环境来说,需要DG的场合已然是若有若无了。
第14章介绍了Oracle 11g 中DG 的增强,这些增强功能是否能证明它存在的必要,还是在为生存做最后的奋力一搏,或许要到Oracle 12c 才能盖棺定论。但“老兵不死,只会凋零”,致我们终将逝去的青春。
第15章介绍了Oracle 11g 数据库的特性ADR 以及几个工具,这些内容因为与RAC的管理维护密切相关,所以被收录进来。
第16到第18章介绍了Oracle数据库的“新欢”──GoldenGate(简称GG)。话说回来,这个新欢的确够火爆,别的不说,跨平台、跨版本、跨产品这三级跳,轻松秒杀DG和Stream,也难怪会大受青睐。这3章由浅入深地介绍了GG的各个知识点,着重介绍了RAC集成时的注意事项。GG这个工具不仅好用,也很易于上手,入门门槛低,学习曲线扁平,基本上不会遇到什么拦路虎。
本书最后的附录为读者提供了如何使用文本形式来安装Grid。
感谢
本书能够面世,首先要感谢本书的编辑杜洁,从《大话Oracle RAC》开始,我们已经认识了5年,一直合作愉快,我也受益良多。如果不是她的坚持,我几乎没有动力动笔,也就不会有这本书的面世。
另外,感谢各位《大话Oracle RAC》的读者,感谢你们的各种支持和鼓励,让我找到了久违的成就感,也对写作产生了一发不可收的兴趣。虽然我的写作能力有限,但是我还是试图把这些原本枯燥的技术内容写得生动有趣一些,希望读者在阅读本书时能够保持心情愉悦,提高学习效率。本书是我工作多年的经验总结,如果能对各位读者有所帮助,那真是再好不过了。
最后,把这本书送给我最亲爱的家人,你们的支持是我最大的动力。以后我会尽量平衡工作和生活,做到适度工作、多陪家人、保持健康,与大家共勉!
张晓明
2013年11月