出版时间:2012-7 出版社:电子工业出版社 作者:Kerry Osborne,Randy Johnson,Tanel Põder 页数:557 字数:900000 译者:黄凯耀,张乐奕,张瑞
Tag标签:无
前言
感谢你购买本书。我们已经为此努力工作了很长时间,希望本书对你即将开始的Exadata之旅有所帮助。我们试图以一种系统的方式介绍Exadata的各个主题,并遵循从一般讨论到具体技术细节的思路。本书中一部分内容从宏观上描绘了Exadata是如何工作的,另一部分内容则是非常技术性的细节描述,你可能会发现若手边有一台Exadata系统以对书中所描述的技术进行试验,会更容易理解这些细节。注意,我们使用了很多隐含参数和特性以演示软件的各部分是如何工作的,请不要把它们当做管理生产系统的推荐方式。记住我们访问的系统允许我们随意玩转而不必担心由此造成的一切后果,这为研究Exadata如何工作带来了很多好处,除了这个特别的访问权限,我们也得到了Oracle公司内外部很多人的大力支持,我们对此心怀感激。 本书面向的读者 本书面对有经验的Oracle从业人员。除非与Exadata平台有关,否则我们不会试图解释Oracle的方方面面,这意味着我们对读者的知识背景有所假定。我们并不期望你是Oracle性能调优的专家,但确实期望你能够熟练使用SQL,并对Oracle的体系结构有基本的了解。 写作本书的由来 在2010年春天,Enkitec买了一台四分之一机柜配置的Exadata。我们把它放在位于Dallas办公室的一个很小的计算机室里。我们没有正规机房的那种装配式地板或者任何花哨的东西,但这个空间确实拥有独立的空调系统。事实上,让Oracle答应我们的购买请求比你想像的要难得多。他们的很多客户都急切地想购买,而且对于这个新生婴儿他们爱护有加。我们没有安放Exadata的一流数据中心,甚至在交付机器之前,电源设施都必须加以改造。无论如何,机器交付不久,在与Jonathan Gennick数次交谈后,Randy和我决定为Apress写作本书。在那时并没有太多文档可供参考,我们只好不断打扰可以找到的任何一个了解Exadata的人。 在2010年春天的Hotsos论坛(Hotsos Symposium)上,Kevin Closson和Dan Norris非常热心地回答了我们的很多问题。过后Kevin联系了我,并自荐为本书正式的技术评审员。于是,Randy和我在整个夏天和初秋都在辛苦地学习,以尽可能掌握所有的东西。 在2010年9月的Oracle Open World大会上,我幸运地碰到了Tanel,我们说起了一个Exadata客户,Tanel刚好帮助这个客户做了一些移植工作。好事成双,最终他同意加入作者的行列。在这次Open World大会上,Oracle宣布了新的X2型号的机器,我们刚刚起步,却已经落后于技术的发展了。 2011年1月,X2平台开始出现在客户现场。Enkitec再一次决定对此技术进行投资,我们很自豪地拥有了一台四分之一机柜配置的Exadata X2-2。事实上,我们决定利用X2的组件把原有的V2四分之一机柜升级到半机柜。这看起来既有利于学习升级,又可以了解把两个不同版本的组件混合在一起是否有问题(事实上没有问题)。这是一个重要的里程碑。 一切都在变化 就如大多数新软件一样,Exadata自2008年底推出以来迅速发展。它带来的变化包含了很多重要的新功能。事实上,此项目的难点之一在于跟上这些变化。由于写作本书期间软件行为的变化,一些章节历经了几次修订。在本书中我们试图涵盖的最后一个版本组合是数据库11.2.0.2 bundle patch 6和cellsrv 11.2.2.3.2。注意在过去两年间发布了很多补丁,同时有多种数据库版本、补丁级别和cellsrv版本的可能组合。因此,很有可能你观察到的行为与我们所记录的并不一致。我们欢迎你的反馈,并会很高兴地解决你所发现的不一致的问题。事实上,这本书是Apress的Alpha计划的一部分,它允许读者下载这本书的早期草稿。在我们写作和编辑此书的过程中,此计划的参与者们提供了很多反馈。我们内心充满感激,更惊讶于你们所提供的如此之多的详尽的细节信息。 对志愿编辑们的感谢 在此项目上,我们得到了一些人的大力支持。让正式技术评审员在书中插入评论是有那么一点古怪。在这种情况下,谁去审核评审员的文字呢?幸运的是,在项目的前期,Arup Nanda就但任起了编辑志愿者的角色。因此,除了作者们相互评审各自的章节,Kevin评审所有的章节,Arup会阅读所有的内容并进行评论,这其中也包含Kevin的评论。另外,Oak Table Network的很多成员在此过程中对各章节也给予了反馈,尤其是Frits Hoogland 和 Peter Bach提供了宝贵的意见。 当本书被加入到Apress的Alpha计划后,我们得到了一批新的评审员。通过这种格式出版的章节的早期版本得到了很多人的反馈。感谢给我们提出问题和在某些议题上帮助我们理清思路的所有人。特别是Oracle的Tyler Muth对此项目表现出了极大的兴趣,给我们提供了非常详细的反馈。他同时给我们和Oracle内部的其他资源架起了桥梁,如Sue Lee,她对资源管理一章进行了非常细致的评审。 最后,我想感谢Enkitec的技术团队。有许多人帮助我们在此道路上前行,在Randy和我工作于此项目上时(而非我们真正的工作),他们帮助我们拾起落下的工作。帮助我们的人太多,我无法一一列举每个人的名字。如果你在Enkitec工作,并且在过去的几年里从事有关Exadata的工作,你已经为本书做出了贡献。我还想特别感谢Tim Fox,虽然他忙于很多事情,包括他自己的出书项目,但他还是为我们绘制了大量的示意图。我们也要特别感谢此项目的另一个主要贡献者Andy Colvin,他在几方面对我们帮助很大,首先,他主要负责维护我们的测试环境,包括对平台的升级和打补丁工作,从而我们可以在第一时间测试最新的特性和软件变化带来的影响,其次,在Randy和我忙于写作期间,他在实施Exadata的客户现场帮忙保持整个团队的战斗力,再次,他帮助我们弄清楚各种特性是如何工作的,特别是关于安装、配置和连接到外部系统这些主题,如果没有他,这个项目会很难完成。 本书的作者 本书有三位作者,如果算上Kevin,那就是四位了。这是我们四人通力合作的结果。但为了方便工作划分,我们都赞成各自负责一部分章节。开始时Randy和我启动这个项目,不久Tanel加入进来(因此在任务分配方面,他的工作会稍微轻一些,不过他是这个团队中非常有价值的一部分,他帮助我们对那些不具体分配给他的领域进行了研究)。以下是本书工作的具体分工。 Kerry:第1~6章、第10章、第16章。 Randy:第7~9章、第14~15章、第13章的一半。 Tanel:第11~12章、第13章的另一半。 Kevin:以“Kevin 说”标志的段落。 联机资源 在这本书中,我们使用了一些脚本。如果脚本比较短,或者我们觉得脚本本身值得关注,我们会在书上包含它的内容。如果脚本太长,或者不是非常有意思,我们可能会选择不包含脚本的内容。你可以在网站上找到我们在本书中使用的所有脚本的源代码。附录C包含了所有诊断脚本的列表,以及对它们使用目的的一个简要说明。 关于“Kevin 说”的一点说明 Kevin Closson是本书的主要技术评审员,Kevin是Oracle的SAGE项目的首席性能架构师,SAGE其实就是Exadata的前身,因此,他不但对Exadata如何工作,而且对Exadata应该如何工作和为什么如此工作都有非常深入的了解。作为技术评审员,他的职责是对我们所写的东西进行评审,并验证它的正确性。一般的工作流程是:一个作者提交某一章节的草稿版本,Kevin对其进行评审并附以相关的评论。随着工作的展开,我们发现把Kevin的一些评论加入到本书中或许是一个好主意,这能够给大家提供一个了解此过程的独特视角。Kevin的评论非常特别,是言简意赅的典范。在此项目过程中,我发现我自己会多次回去查阅那些短小的评论和邮件,随着对某个主题的进一步熟悉,我发现它们表达了更多的含义。因此我建议你也采用类似的方式,当阅读一个章节时同时阅读他的评论,在完成这一章节时,请尝试重新阅读他的评论,我想在第二遍时,你会发现你读懂了更多的东西。 我们如何测试 当我们开始此项目时,数据库的版本是11.2.0.1。因此一些章节的初始测试环境采用的就是这个版本的数据库,还有在存储节点上的各种级别的补丁。当11.2.0.2发布后,我们回去进行重新测试。我们会努力指出显著不同的地方,但有些部分是在11.2.0.2发布之后才开始编写的,因此对于这些部分,我们可能不会提及其与11.2.0.1行为上的不同。我们使用V2和X2硬件组件的组合进行测试工作。除了X2的速度更快之外,它们之间基本上没有什么区别。 数据库用户和表 你会发现本书的一些例子用到了几个数据库表。Tanel使用了一个叫做T的表,如下所示: SYS@SANDBOX1> @table_stats Owner : TANEL Table : T Name Null· Type ----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(30) NAME VARCHAR2(30) TYPE VARCHAR2(12) LINE NUMBER TEXT VARCHAR2(4000) ROWNUM NUMBER ========================================================================== Table Statistics ========================================================================== TABLE_NAME : T LAST_ANALYZED : 10-APR-2011 13:28:55 DEGREE : 1 PARTITIONED : NO NUM_ROWS : 62985999 CHAIN_CNT : 0 BLOCKS : 1085255 EMPTY_BLOCKS : 0 AVG_SPACE : 0 AVG_ROW_LEN : 104 MONITORING : YES SAMPLE_SIZE : 62985999 ----------------- ========================================================================== Column Statistics ========================================================================== Name Analyzed NDV Density # Nulls # Buckets Sample ========================================================================== OWNER 04/10/2011 21 .047619 0 1 62985999 NAME 04/10/2011 5417 .000185 0 1 62985999 TYPE 04/10/2011 9 .111111 0 1 62985999 LINE 04/10/201123548 .000042 0 1 62985999 TEXT 04/10/2011 303648 .000003 0 1 62985999 ROWNUM 04/10/2011 100 .010000 0 1 62985999 我使用SKEW表的几个不同的变体,最常使用的是SKEW3,如下所示: SYS@SANDBOX1> @table_stats Owner : KSO Table : SKEW3 Name Null· Type ----------------------------------------- -------- ---------------------------- PK_COL NUMBER COL1 NUMBER COL2 VARCHAR2(30) COL3 DATE COL4 VARCHAR2(1) NULL_COL VARCHAR2(10) ============================================================================== Table Statistics ============================================================================== TABLE_NAME : SKEW3 LAST_ANALYZED : 10-JAN-2011 19:49:00 DEGREE : 1 PARTITIONED : NO NUM_ROWS : 384000048 CHAIN_CNT : 0 BLOCKS : 1958654 EMPTY_BLOCKS : 0 AVG_SPACE : 0 AVG_ROW_LEN : 33 MONITORING : YES SAMPLE_SIZE : 384000048 ----------------- ============================================================================== Column Statistics ============================================================================== Name Analyzed NDVDensity # Nulls# Buckets Sample ============================================================================== PK_COL 01/10/2011 31909888.000000 12 1 384000036 COL1 01/10/2011 902848.000001 4 1 384000044 COL2 01/10/2011 2.500000 12 1 384000036 COL3 01/10/20111000512.000001 12 1 384000036 COL4 01/10/2011 3.333333 12 1 384000036 NULL_COL 01/10/2011 1 1.000000 383999049 1 999 这些详细的信息对于理解示例应该不是必需的,但如果你对这些表有什么疑问,这里的信息可供参考。当然我们也使用了其他的表,这些只是我们最常使用的。 祝你好运 我们的Exadata探索之旅如同一场狂欢的盛宴。希望你能如我们一样,尽情享受这个探索历程,也希望这本书能够提供一个构建你自己知识框架的平台。我觉得我们只是刚刚掀开了Exadata所展现的无尽可能性的面纱的一角。开始你的研究之旅吧,祝你好运,请随时在网上向我们提问,并和我们分享你的发现。
内容概要
本书深入地诠释了Exadata的各项特性,如智能扫描、混合列式存储、存储索引、智能闪存、IO资源管理;系统地介绍了如何安装、配置和管理Exadata;完美地阐述了Exadata的等待事件、性能监控和调优方法;详细地剖析了计算节点和存储节点的内部原理;全面地分享了作者们在实际项目中所获得的宝贵经验,如怎样进行大数据的高效移植、Exadata上的一些常见误区、数据库资源管理,等等。本书是实践经验的总结和升华,可读性极强,不仅有对Exadata深入的研究,还有对它们优雅的展现,它将带领读者进入Exadata的殿堂。
原作者中文版序
首先我们要向这本书的中国读者问好。在一年前的Oracle Open World
2011上,我们被问及是否愿意帮助中国的翻译小组将这本书翻译成中文,而今天,我们非常兴奋地看到中文译本即将出版。在这个过程中,我们的意外收获是这次翻译又再次为本书的内容做了一次技术审校,就本书的内容及复杂度而言,在写作过程中出现一些错漏在所难免,而中文翻译小组的出色反馈帮助我们纠正和澄清了这些错误。
至今,这本书的英文版出版已有一年,而离Oracle发布Exadata
V2也已超过两年。我们被Exadata在全球走红的速度所震惊(但是并不太惊讶)。写作一本如此崭新技术的书籍的一大挑战就是要面对产品本身的快速变化。幸运的是,它并没有太多令人耳目一新的新增特性,时至今日,本书仍然是学习Exadata的权威资料。书中展示的例子和实验仍然有效,并为读者带来了宝贵的见解。我们希望你能从本书中获益,希望本书可以帮助你了解智能存储的内部工作机理,也可以帮助你理解为什么称其为数据库技术的一个飞跃。
——Kerry,Randy,Tanel
作者简介
Kerry Osborne自1982年Oracle
V2开始就开始使用Oracle,担任过开发人员和DBA。在过去的几年中,他一直专注于理解Oracle内部机制和解决Oracle性能问题。他是OakTable
Network成员(译者注:OakTable是Oracle数据库领域内最高端的一个技术组织,它由一群热爱Oracle技术并爱刨根问底的家伙所组成,现有大约70位成员,他们都是最顶尖的技术专家)和Oracle
ACE
Director,作为演讲者频繁出现在各种Oracle会议上。Kerry还是Enkitec公司的联合创始人,这是一家专注于Oracle咨询的公司,总部在德克萨斯州的达拉斯。他的博客是kerryosborne.oracle-
guy.com.
Randy Johnson是Enkitec公司的首席顾问,这家公司专注于Oracle咨询。他从90年代初就开始使用Oracle
V7,已经拥有超过18年的Oracle经验。他的大部分职业生涯结合了DBA的工作和UNIX系统管理员的职责。在过去的5年中,他几乎将全部精力都放在RAC和ASM上。他还是RMAN备份和恢复的权威,曾写过一个广泛使用的自动化RMAN备份工具Dixie。Randy偶尔会在blog.enkitec.com上写博客。
Tanel
P?del是世界顶尖的Oracle性能专家之一,曾帮助遍布五大洲二十多个国家的客户解决了复杂的问题。他擅长先进的性能优化、故障诊断和其他复杂的任务,比如以非常短的停机时间迁移超大规模数据库(VLDB)。他从Exadata
V1开始就优化Exadata的性能,并且计划更深入地研究Exadata性能优化和故障诊断。
Tanel是世界上第一批OCM之一,还是Oracle ACE Director以及OakTable
Network荣誉成员。他经常在全世界各种会议上发表演讲,并在他的博客blog.tanelpoder.com上发表文章、脚本和工具。
黄凯耀,2006年加入Oracle,在Real World Performance
Group(隶属于Oracle公司总部数据库产品管理部门)工作,担任首席软件工程师。主要从事关键客户的现场性能测试、现实客户碰到的重大问题解决、Oracle数据库的质量保证、数据库间的竞争分析等工作。特别专注于大型数据库(VLDB)在OLTP与OLAP环境下的高性能与高可扩展性的最佳实践。目前工作重点在于Oracle
Exadata的性能测试与实施。乐于技术的总结与分享,个人技术博客为www.os2ora.com。
张乐奕(Kamus)
云和恩墨(北京)信息技术有限公司技术总监
Oracle ACE Director
Itpub Oracle数据库管理版/高可用版版主
ACOUG(www.acoug.org)联合创始人
OESIG(www.oesig.org)创始人
个人Blog:www.dbform.com
张乐奕,云和恩墨的联合创始人之一,致力于通过不断的技术探索,帮助中国用户理解和接触新技术,推广数据库技术应用。曾先后任职于UT斯达康、电讯盈科、甲骨文等知名企业,担任DBA及技术顾问工作。现任职于云和恩墨(北京)信息技术有限公司。
具备丰富的行业经验与技术积累,对于数据库技术具有深刻的理解。热切关注Oracle技术和其他相关技术,对于Oracle数据库RAC以及高可用解决方案具有丰富的实践经验。长于数据库故障诊断,数据库性能调优。作为社区和网络的活跃者,在公开演讲和出版方面,多有建树。
2004年2月,作为主要作者出版了《Oracle数据库DBA专题技术精粹》一书。
2005年6月,作为主要作者出版了《Oracle数据库性能优化》一书。
2007年12月,获ITPUB论坛年度原创技术文章奖,同年3月,被Oracle公司授予Oracle ACE称号。
2010年3月,与Eygle联合创立ACOUG用户组,目前ACOUG是中国最活跃的Oracle用户组,持续进行着技术分享。
2011年03月,被Oracle公司授予Oracle ACE Director
称号,同年创办中国Exadata特别用户组。
张瑞,网名HelloDBA,Oracle
ACE,2005年加入阿里巴巴,数据库架构师,负责数据库性能优化与应用架构改进,主导推动了阿里巴巴数据库技术的变革。同时也是Exadata技术爱好者,致力于推动Flash存储技术在数据库领域的应用,研究软硬件结合的数据库解决方案。个人有技术博客HelloDB.net,乐于分享数据库领域的最佳实践和研究成果,并创立了AskHelloDBA.com专业数据库问答社区,解答各种数据库技术问题,定期举办AskHelloDBA数据库技术论坛。
书籍目录
作者介绍 xxxi
技术审校者 xxxiii
致谢 xxxv
前言 xxxvii
第1章 Exadata是什么
1.1 Exadata概览
1.2 Exadata的历史
1.3 不同的视角
1.3.1 数据仓库设备
1.3.2 联机事务处理机器
1.3.3 合并平台
1.4 可选配置
1.4.1 Exadata Database Machine X2-2
1.4.2 Exadata Database Machine X2-8
1.5 硬件组件
1.5.1 操作系统
1.5.2 数据库服务器
1.5.3 存储服务器
1.5.4 InfiniBand
1.5.5 闪存
1.5.6 磁盘
1.5.7 其他杂项
1.6 软件组件
1.6.1 数据库服务器软件
1.6.2 存储服务器软件
1.7 软件架构
1.8 总结
第2章 卸载/智能扫描
2.1 为何卸载如此重要
2.2 卸载包含了什么
2.2.1 字段投影
2.2.2 谓词过滤
2.2.3 存储索引
2.2.4 简单连接(布隆过滤)
2.2.5 函数卸载
2.2.6 压缩/解压缩
2.2.7 加密/解密
2.2.8 虚拟列
2.2.9 数据挖掘模型评分
2.2.10 非智能扫描类型的卸载
2.3 智能扫描的先决条件
2.3.1 全扫描
2.3.2 直接路径读取
2.3.3 Exadata存储
2.4 无法使用智能扫描的情况
2.4.1 未实现的功能
2.4.2 转换为块运输模式
2.4.3 跳过某些卸载操作
2.5 如何验证智能扫描确实发生
2.5.1 10046跟踪
2.5.2 性能统计(v$sessstat)
2.5.3 卸载适用字节
2.5.4 SQL监控
2.6 参数
2.7 总结
第3章 混合列式压缩
3.1 Oracle存储概述
3.2 Oracle压缩机制
3.2.1 BASIC
3.2.2 OLTP
3.2.3 HCC
3.3 HCC工作机制
3.4 HCC性能
3.4.1 加载性能
3.4.2 查询性能
3.4.3 DML性能
3.5 预期压缩率
3.5.1 压缩助手
3.5.2 真实案例
3.6 限制与挑战
3.6.1 迁移数据到非Exadata平台
3.6.2 关闭串行直接路径读取
3.6.3 锁的问题
3.6.4 单行访问
3.7 常见的使用场景
3.8 总结
第4章 存储索引
4.1 结构
4.2 监控存储索引
4.2.1 数据库统计值
4.2.2 跟踪
4.2.3 总结
4.3 控制存储索引
4.3.1 _kcfis_storageidx_disabled
4.3.2 _kcfis_storageidx_diag_mode
4.3.3 _cell_storidx_mode
4.3.4 存储软件参数
4.4 行为
4.5 性能
4.5.1 为空值进行特殊优化
4.5.2 字段值的物理分布
4.6 潜在问题
4.6.1 不正确的结果
4.6.2 类型转换
4.6.3 分区大小
4.6.4 不兼容的编程技巧
4.7 总结
第5章 Exadata智能闪存
5.1 硬件
5.2 Cache vs. Flash Disk
5.2.1 使用闪存作为缓存
5.2.2 如何创建ESFC
5.2.3 控制ESFC的使用
5.3 监控
5.3.1 存储监控
5.3.2 数据库监控
5.4 性能
5.5 总结
第6章 Exadata并行操作
6.1 参数
6.2 存储层的并行
6.3 自动并行度
6.3.1 操作和配置
6.3.2 I/O基准测试
6.3.3 自动并行度调整小结
6.4 并行语句队列
6.4.1 老方法
6.4.2 新方法
6.4.3 控制并行队列
6.4.4 并行语句队列小结
6.5 内存并行执行
6.6 总结
第7章 资源管理
7.1 数据库资源管理器
7.1.1 使用者组
7.1.2 计划指令
7.1.3 资源计划
7.1.4 资源管理器视图
7.1.5 等待事件:resmgr:cpu quantum
7.1.6 一个DBRM的例子
7.1.7 测试资源计划
7.2 实例隔离
7.2.1 配置和测试实例隔离
7.2.2 过量分配
7.3 I/O 资源管理器
7.3.1 IORM如何工作
7.3.2 Exadata管理I/O的方法
7.3.3 把所有的一切组合在一起
7.3.4 IORM监控和指标
7.4 总结
第8章 Exadata的配置
8.1 Exadata的网络组件
8.1.1 管理网络
8.1.2 客户端访问网络
8.1.3 私有网络
8.2 关于配置过程
8.3 配置Exadata
8.3.1 第1步:配置工作
8.3.2 第2步:DBM配置器
8.3.3 第3步:上传参数和部署文件
8.3.4 第4步:CheckIP(checkip.sh)
8.3.5 第5步:第一次引导Firstboot
8.3.6 第6步:准备安装介质
8.3.7 第7步:运行OneCommand
8.4 升级Exadata
8.4.1 创建一个新的RAC集群
8.4.2 升级现有的群集
8.5 总结
第9章 Exadata的恢复
9.1 Exadata的诊断工具
9.1.1 Sun Diagnostics:sundiag.sh
9.1.2 健康检查HealthCheck
9.1.3 CellCLI
9.2 Exadata的备份
9.2.1 数据库服务器的备份
9.2.2 存储节点的备份
9.3 数据库的备份
9.3.1 基于磁盘的备份
9.3.2 基于磁带的备份
9.3.3 从Standby数据库上进行备份
9.3.4 Exadata对RMAN的优化
9.4 Exadata的恢复
9.4.1 数据库服务器的恢复
9.4.2 存储节点的恢复
9.5 总结
第10章 Exadata等待事件
10.1 Exadata特有的事件
10.1.1 节点事件
10.1.2 触发事件的执行计划步骤
10.2 用户I/O类别中的Exadata等待事件
10.2.1 cell smart table scan
10.2.2 cell smart index scan
10.2.3 cell single block physical read
10.2.4 cell multiblock physical read
10.2.5 cell list of blocks physical read
10.2.6 cell smart file creation
10.2.7 cell statistics gather
10.3 系统I/O类别中的Exadata等待事件
10.3.1 cell smart incremental backup
10.3.2 cell smart restore from backup
10.4 其他类别和空闲类别中的Exadata等待事件
10.4.1 cell smart flash unkeep
10.5 旧事件
10.5.1 direct path read
10.5.2 enq: KO—fast object checkpoint
10.5.3 reliable message
10.6 资源管理事件
10.6.1 resmgr:cpu quantum
10.6.2 resmgr:pq queued
10.7 总结
第11章 理解Exadata的性能指标
11.1 Exadata性能指标的衡量
11.2 重温Exadata智能扫描的先决条件
11.2.1 Exadata智能扫描的性能
11.2.2 理解Exadata智能扫描指标和性能计数器
11.3 Exadata的动态性能计数器
11.3.1 何时及如何使用性能计数器
11.3.2 Exadata的性能计数器的含义和说明
11.3.3 Exadata的性能计数器参考
11.4 了解SQL语句的性能
11.5 总结
第12章 Exadata性能监控
12.1 系统方法论
12.2 SQL语句的响应时间监控
12.2.1 利用实时的SQL 监控报告对SQL语句进行监控
12.2.2 使用V$SQL和V$SQLSTATS监控SQL语句
12.3 监控存储节点
12.3.1 在存储节点利用CellCLI访问性能指标
12.3.2 使用Grid Control的Exadata存储服务器插件访问性能指标
12.3.3 使用哪些性能指标
12.3.4 监控Exadata 存储节点的OS性能
12.4 总结
第13章 迁移到Exadata
13.1 迁移策略
13.2 逻辑迁移
13.2.1 抽取和加载
13.2.2 通过数据库链复制数据
13.2.3 基于同步复制的迁移
13.2.4 逻辑迁移小结
13.3 物理迁移
13.4 备份和恢复
13.4.1 全备份和恢复
13.4.2 增量备份
13.4.3 传输表空间(和跨平台传输表空间XTTS)
13.4.4 物理Standby
13.4.5 ASM重平衡
13.4.6 迁移后的任务
13.4.7 物理迁移小结
13.5 总结
第14章 存储设计
14.1 Exadata 磁盘架构
14.1.1 失效组
14.1.2 网格盘
14.1.3 存储分布
14.2 创建网格盘
14.2.1 创建网格盘
14.2.2 网格盘大小
14.2.3 创建基于闪存盘的网格盘
14.3 存储策略
14.3.1 配置选项
14.3.2 隔离存储节点访问
14.4 节点安全策略
14.4.1 节点安全策略的术语
14.4.2 节点安全策略最佳实践
14.4.3 配置ASM范围安全策略
14.4.4 配置数据库范围安全策略
14.4.5 删除节点安全策略
14.5 总结
第15章 计算节点设计
15.1 配置考虑
15.2 Non-RAC环境配置
15.3 RAC集群
15.4 Exadata典型配置
15.5 Exadata集群
15.6 总结
第16章 忘记已知
16.1 双系统记
16.2 类型负载
16.2.1 Exadata Smart Flash Cache (ESFC)
16.2.2 可扩展性
16.2.3 写密集型OLTP负载
16.3 DW类型负载
16.3.1 启用智能扫描
16.3.2 阻碍智能扫描的因素
16.3.3 其他注意事项
16.4 混合负载
16.4.1 要索引还是不要?
16.4.2 优化器的局限
16.4.3 使用资源管理器
16.5 总结
附录A CellCLI和dcli
附录B Exadata在线资源
附录C 诊断脚本
章节摘录
原作者中文版序 首先我们要向这本书的中国读者问好。在一年前的Oracle Open World 2011上,我们被问及是否愿意帮助中国的翻译小组将这本书翻译成中文,而今天,我们非常兴奋地看到中文译本即将出版。在这个过程中,我们的意外收获是这次翻译又再次为本书的内容做了一次技术审校,就本书的内容及复杂度而言,在写作过程中出现一些错漏在所难免,而中文翻译小组的出色反馈帮助我们纠正和澄清了这些错误。 至今,这本书的英文版出版已有一年,而离Oracle发布Exadata V2也已超过两年。我们被Exadata在全球走红的速度所震惊(但是并不太惊讶)。写作一本如此崭新技术的书籍的一大挑战就是要面对产品本身的快速变化。幸运的是,它并没有太多令人耳目一新的新增特性,时至今日,本书仍然是学习Exadata的权威资料。书中展示的例子和实验仍然有效,并为读者带来了宝贵的见解。我们希望你能从本书中获益,希望本书可以帮助你了解智能存储的内部工作机理,也可以帮助你理解为什么称其为数据库技术的一个飞跃。 --Kerry,Randy,Tanel 译者序1 2011年7月,我曾给中国Oracle用户组(ACOUG)做过一次有关Exadata的演讲,Exadata的高性能在国内的Oracle社区中引起了不小的反响。其实,Exadata在2008年底已经推出,自那时起,我们组(Oracle Real World Performance Group) 就一直从事着Exadata上的性能测试与项目开发工作。在我的博客上也有一些相关的文章涉及Exadata,如2010年5月前后发表的系列文章Exadata V2 架构分析,但那都是些零碎的片断。毋庸置疑,Exadata在国内还是陌生的,但作为Oracle数据库的未来发展方向,让更多的人熟悉Exadata无疑是一个很有意义的事情,甚至很多兄弟团队都鼓励我们组写作一本关于Exadata及其性能调优的书。 2011年8月,一个机缘巧合地,博文视点的张春雨老师联系上我,希望我可以参与到这本书的翻译工作中。初看之下,这本书的内容非常丰富,是对Exadata的一个全面系统的介绍。于是我们一拍即合,这本书的翻译工作就此掀开序幕。另外两位译者是阿里巴巴的张瑞(HelloDBA)与恩墨科技的张乐奕(Kamus)。张瑞是阿里巴巴的架构师,负责数据库性能优化与应用架构改进,研究软硬件结合的数据库解决方案。张乐奕是云和恩墨的技术总监,Oracle ACE Director, 也是国内知名的Oracle技术专家。于是,我们的中文翻译小组正式成立。 2011年8月中旬,我们第一次接触到了这本书的电子版。开始的日子是忙碌的,每天工作之余,翻译上几页,这是一个锻炼人耐力的过程。出差途中,不管是在飞机上还是火车上,翻译这件事儿也帮助我打发了一些无聊时光。我学会了一个道理,积少成多,贵在坚持。不过也有难熬的时候,特别对于晦涩的章节,但最终理清作者的思路时,也会感到欢欣鼓舞,即使几小时已经倏忽间流走了。而印象最深的,是与张瑞和张乐奕对里面技术点的讨论,几百封邮件的往来帮助我们一起澄清了对原著诸多晦涩段落的理解。这是一个通力合作的过程,它是痛苦的,又是快乐的,我们只有尽情享受其中。 三位作者的文风其实各有特点。Tanel是全球Oracle社区的著名人物,他的Oracle Session Snapper出名已久,性能优化的相关章节主要由他执笔,这两章充满睿智,里面完美地体现了Tanel对性能调优的理解,既有对全局的系统方法论的阐述,也有对每个性能指标含义的具体说明,还有对SQL、存储节点的调优监控思路。翻译的时候,我总有一种心有戚戚焉的感觉。这些论述即使在非Exadata平台也有非常大的借鉴意义。 Randy则具体关注Exadata的管理,包括了对数据库资源管理器、配置和恢复、存储节点与计算节点的详细剖析。对资源管理的详细阐述必将会刮起一阵清新之风,在消退Oracle资源管理器神秘感的同时,让读者也掌握了如何构建合适的资源管理模型。这些章节是对Exadata整体架构的高可用性与高可配置性的极佳体现。 Tanel和Randy还合作了关于如何移植的主题,这也是充满实践性的真知灼见的一章,里面提到的方案在实施中会有很好的借鉴意义。 Kerry则专注于对Exadata相关特性的描述。通过大量的例子深入浅出地介绍了Exadata的主要特性,同时还大量地挖掘了各特性后面的细节。 由三位各有所长的作者联合执笔,终于成就了这本恢宏巨作。 我负责翻译的章节主要包括第7、8、9、11、12章,以及前言部分。第7、8、9章由Randy执笔,是关于系统资源管理、系统配置和恢复的内容。第11和12章由Tanel执笔,是关于性能优化的章节。 对翻译工作,不得不提的一点是对名词术语的翻译。坦白讲,以前阅读译著时,一个令人难受的地方就是原来很熟悉的英文术语与译者的翻译联系不起来。这每每让我有阅读原著的冲动。我们在本书的翻译过程中在尽量避免这个问题,对于大家所熟知的英文术语,我们尽量不做翻译。当不翻译真的很影响阅读的流畅性时,我们才会进行翻译,如“Grid Disk”,这个词汇在第14章就出现了140多次,不翻译会很影响阅读效果,所以虽然我们平时都直称“grid disk”,本书中我们还是把它翻译成了“网格盘”(或许“网格盘”一词也会因此流行起来呢)。当然,我们会在前面的中英文术语对照中列举出来。 2011年2月,我们开始进行本书的翻译校对工作。这又是三位译者头脑碰撞的日子,我们努力清除原文理解上的每一个障碍,并积极与三位原作者就我们所发现的众多瑕疵进行了邮件讨论并加以改正,同时对于里面的重点和难点加入了独具特色的译者注。相信本书将是Expert Oracle Exadata全球的最新译本,同时也是独具特色的中文版本。如果读者在阅读原版时产生了疑惑,而会想起参考此中文版本,那将是我们莫大的荣幸。 看着眼前厚厚的著作,思绪万千,开始翻译的日子似很遥远,又历历在目。在这里,要感谢Oracle Real World Performance Group,感谢杨中对翻译工作的支持,感谢帮助我做了认真细致校对工作的李昕、曲卓、董志平、陈长青、孙笑盈,感谢Oracle的众多同事提供的帮助和指导,特别是来自COE(Center Of Excellence)的许向东。感谢喻总在百忙之中为本书做序。另外,还要谢谢我的妻子,她对我加班加点的翻译工作不仅毫无怨言,还从一个学习者的角度,校对了其中的一些章节。谢谢你们! 黄凯耀于深圳 2012-4-9 译者序2 这本书的翻译计划是从2011年8月份开始的,据我所知,最早是博文视点的编辑“侠少”找到阿里巴巴的张瑞(Jacky)和甲骨文的黄凯耀(Kaya),然后Jacky再找到我。 实际上,我个人开始想要翻译这本Exadata技术书籍倒是从更早的时候就开始了,这本书在Amazon上的发行日期是2011年8月9日,其实早在2011年2月份就已经有另外一本关于Exadata性能的书籍(Achieving Extreme Performance with Oracle Exadata,作者全部是Oracle公司员工),但是论作者的知名度,仍然是本书更受人关注。最早知道这本书是从本书联合作者Tanel Poder的个人技术Blog中,那是2011年3月份,Tanel发文说已经可以在Apress网站上购买新书Expert Oracle Exadata的Alpha版本,Tanel是全球最受人尊重的Oracle技术专家之一,而一本技术书籍可以预先购买Alpha版本也是很稀奇的事情,再加上Exadata正是当今IT界的“当红炸子鸡”,理所当然这本书非常值得期待。在2011年4月份,我个人跟某出版社联系过,表达了如果该书可以引进中国,那么我很愿意组织人手进行翻译的工作,对方的回复是正在谈版权,之后没有消息。然后,Tanel在6月份发文说,本书已经即将定稿,再之后,就是8月份,该书正式发售。而在正式发售的当月,博文视点就开始寻找中文版本的译者,可以说是非常迅速。而对于版权的猜测,那一定是博文视点拿到了版权,而某出版社失利了。:-D 以上的情况,让我在收到Jacky的邀请以后,毫不犹豫地接受了工作,无论工作如何繁忙,我都愿意让这本书的中文译者里有我的名字,这对于我而言可以说是一种荣幸。2011年8月17日收到这本书的PDF电子版(当然后来又收到纸质版),从8月份开始,Kaya、Jacky和我都迅速地投入了翻译的工作,在整个过程中,通过不断地沟通,我们按照每个人的经验和对各个章节的熟悉程度以及感兴趣程度,大致是均分了各个章节。我负责翻译的章节是第1、2、4、6、13、16章,原本我给自己定下的计划是每两周翻译一章,那么最快可以在两个月内完成翻译,再加上校稿,本来计划在3个月内可以完成所有的翻译,也就是如果一切顺利,这本书的中文译本应该在2011年年底的时候就跟大家见面了。但是,计划永远是赶不上变化的,除了工作的繁忙和个人的懒惰,我们几个译者还都在其他方面出现了这样或那样的意外情况,导致整个翻译工作整体滞后。所幸,还不算太迟,我想在你们看到本书的时候,这个世界上应该还没有更新的Exadata书籍可以参考。所以,这本书仍然是迄今为止想要了解Exadata、想要使用Exadata、想要监控调整Exadata的最佳参考书籍。 Oracle Exadata的举世瞩目,对整个数据库硬件/软件市场的震撼,在全球或者仅仅是中国国内的引人瞩目,乃至热销,都已经无须赘言。作为数据库从业者,也许你没有听过Netezza,也许你没有听过Twinfin,也许你没有听过Hana,但是你一定听过Exadata,这绝不仅仅是由于Oracle公司一贯的好战、勇于进攻、大力宣传的风格,而是Exadata确实具有独步天下的功能。也许我们不能说在经过最精细的调整以后,Exadata在数据仓库领域与其他竞争对手相比一定具有绝对的优势,但是,不要忘记,在现在这个世界里,又有多少是纯粹的数据仓库系统呢?又有多少用户愿意让OLTP用一套系统,而数据仓库又用另外一套系统呢?这其中的数据传输开销和系统设计复杂性的开销,如果能够消减甚至避免,那么又何乐而不为呢?Exadata正是这样的一套软硬件一体的平台,同时支持OLTP类型负载和数据仓库类型负载,通过Oracle Database 11gR2中的资源管理器来更加精细地调控硬件资源,让两种类型的负载都能获得各自需要的资源,并顺畅执行。 如果我们抛却Exadata在存储节点中的软件特性,它使用的各个硬件组件并不是划时代的,无论是Infiniband还是Flashcache/SSD,都已经出现很久了,在企业级市场中也已被很多用户使用,但是将这些组件放在一起,并且预先调整为一个平衡的系统(没有任何一处明显的性能瓶颈),这是划时代的。Oracle将软硬一体机的概念推广到了开放性平台上,极大地挑战了Teradata的市场,用开放性的硬件+开放性的操作系统+开放性的数据库软件,构造出了一个平衡的、性能超强的平台,这同样是划时代的。 好吧,前面我们提到了“抛却Exadata在存储节点中的软件特性”是吗?这就好比说,把皇冠上最闪亮的那颗宝石先摘下来,别闪花了我们的眼睛。现在,我们要把这颗宝石放回去了,智能扫描(Smart Scan)、存储索引(Storage Index)、混合列式压缩(Hybrid Columnar Compression),无论哪一项软件特性都足以震撼数据处理市场,而当它们结合在一起,配合上Oracle Database原本就具有的高性能,再配合前面说的这个平衡的硬件架构,我们就得到了足以颠覆一切固有理念的惊人性能。在Exadata的POC现场,有客户因为实在无法接受Exadata展示出来的飞一般的速度而怀疑Oracle的技术人员在造假。这在无奈的同时,无疑也是一种自豪吧。 Exadata的出现,颠覆了一些我们既有的数据库管理理念,但是无论如何,Exadata中运行的是Oracle Enterprise Linux(当然也有Solaris,不过是x86-64版本,至少到目前为止,Oracle还没有计划显示会出现SPARC平台上的Exadata),Linux上运行的是Oracle Database 11gR2,对于所有数据库技术从业者来说,之前积累的操作系统管理知识,Oracle数据库/RAC管理知识都仍然适用。我们需要的只是与时俱进,将Exadata的特有知识点加入我们以前的知识体系中。本书是最佳的入手点,因为本书中不但有Exadata的特性阐述,也同样有使用经验和最佳实践。要知道本书的作者都是真正的Exadata使用者,而本书的技术审校者(Kevin)更是Exadata的性能架构师(不过,Kevin现在已经离开Oracle公司,加盟EMC,去玩Greenplum了)。 我唯一希望的是,大家在阅读这本中文译本的时候,不至于产生去重新阅读原著的冲动(虽然,我仍然建议大家去阅读原著),因为如果那样,那只能表示我们的翻译实在是很不适合中文读者的理解。如果你觉得本书优秀,那么基本上可以说这是原作者的功劳,当然,我也希望你们看到我们三位译者的努力。我们在翻译完各自的章节以后,又互相审阅了其他人的章节,我们尽量斟酌每一句话的翻译,希望读起来是符合中文阅读习惯的,对于一些比较难于理解的片段(比如Kevin说的某些话),我们通过邮件跟作者进行了沟通以确保译文是正确体现了作者意图的,对于一些原文较为晦涩的地方,我们也根据自己的理解增加了“译者注”,我相信这也是目前大多数技术书籍的译文中并不常见的,我们甚至在想,如果译者注足够多,那么就可以出一本批注版的书籍了(:-D)。这其中,由于Kaya在Exadata中的实战经验尤为丰富,更是付出了格外的精力。你们现在看到的这本Expert Oracle Exadata的中文版,应该是全球的最新版本,因为在我们的翻译过程中,不但将本书对应英文版出版以后提交给作者的错误修订全部都更正到了本书中,而且我们还在翻译过程中发现了更多的错误,Kaya通过邮件直接跟三位作者沟通并一一确认,最终对于确实是错误的描述也都全部做了更正。实际上,这也是本书推迟到现在才出版的原因之一。 就在今天,我重新审阅完了自己翻译的第6章,回顾了一下从2011年8月份开始,我们三位译者和博文视点的侠少关于翻译本书的邮件沟通,来来回回将近300封邮件,我相信在本书中文版最终定稿的时候,沟通邮件量一定会超过300封(实际上最终的沟通邮件将近500封)。我们扪心自问,已经尽了自己最大的努力,但是一定还会有这样或那样的不足,还望读者海涵。 最后,我要感谢我的妻子和可爱的儿子,在我工作之余的很多个深夜,我仍然在翻译此书,是我的妻子极大地包容了我,没有她的支持,没有她承担几乎全部家务和对我们年仅1岁多的儿子的照料,也许我的翻译进度还会拖后。谢谢你,我爱你们。感谢Kaya、Jacky,还有博文视点的侠少,与你们关于本书翻译讨论的500封邮件是宝贵的财富。感谢我的大学师妹--董楠,她是《老美国志异》、《此地无人生还》、《满是镜子的房间》三本畅销书籍的译者,喜欢摇滚的朋友应该热爱这几本书籍,本书某些段落的措辞有得到她的指教。另外,我同样要感谢我所在的公司--云和恩墨的多位同事,是你们帮我承担了由于翻译工作而落下的本应属于我的工作,感谢杨廷琨(老杨同时帮助审阅了本书的第1章),感谢盖国强,还有帮助我审阅中文译稿的同事们--仇实、刘洋、余广宏、董禹、宋春风,译稿里面也有你们的功劳,谢谢你们。 张乐奕(Kamus)于上岛咖啡,北京 2012年2月29日 ……
图书封面
图书标签Tags
无
评论、评分、阅读与下载