深入理解Oracle Exadata

深入理解Oracle Exadata
作 者: 奥斯本 黄凯耀 张乐奕 张瑞
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Oracle
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Kerry Osborne自1982年OracleV2开始就开始使用Oracle,担任过开发人员和DBA。在过去的几年中,他一直专注于理解Oracle内部机制和解决Oracle性能问题。他是OakTableNetwork成员(译者注:OakTable是Oracle数据库领域内最高端的一个技术组织,它由一群热爱Oracle技术并爱刨根问底的家伙所组成,现有大约70位成员,他们都是最顶尖的技术专家)和OracleACEDirector,作为演讲者频繁出现在各种Oracle会议上。Kerry还是Enkitec公司的联合创始人,这是一家专注于Oracle咨询的公司,总部在德克萨斯州的达拉斯。他的博客是kerryosborne.oracle-guy.com.Randy Johnson是Enkitec公司的首席顾问,这家公司专注于Oracle咨询。他从90年代初就开始使用OracleV7,已经拥有超过18年的Oracle经验。他的大部分职业生涯结合了DBA的工作和UNIX系统管理员的职责。在过去的5年中,他几乎将全部精力都放在RAC和ASM上。他还是RMAN备份和恢复的权威,曾写过一个广泛使用的自动化RMAN备份工具Dixie。Randy偶尔会在blog.enkitec.com上写博客。TanelP?del是世界顶尖的Oracle性能专家之一,曾帮助遍布五大洲二十多个国家的客户解决了复杂的问题。他擅长先进的性能优化、故障诊断和其他复杂的任务,比如以非常短的停机时间迁移超大规模数据库(VLDB)。他从ExadataV1开始就优化Exadata的性能,并且计划更深入地研究Exadata性能优化和故障诊断。Tanel是世界上第一批OCM之一,还是Oracle ACE Director以及OakTableNetwork荣誉成员。他经常在全世界各种会议上发表演讲,并在他的博客blog.tanelpoder.com上发表文章、脚本和工具。 译者黄凯耀,2006年加入Oracle,在Real World PerformanceGroup(隶属于Oracle公司总部数据库产品管理部门)工作,担任首席软件工程师。主要从事关键客户的现场性能测试、现实客户碰到的重大问题解决、Oracle数据库的质量保证、数据库间的竞争分析等工作。特别专注于大型数据库(VLDB)在OLTP与OLAP环境下的高性能与高可扩展性的最佳实践。目前工作重点在于...

内容简介

本书深入地诠释了Exadata的各项特性,如智能扫描、混合列式存储、存储索引、智能闪存、IO资源管理;系统地介绍了如何安装、配置和管理Exadata;完美地阐述了Exadata的等待事件、性能监控和调优方法;详细地剖析了计算节点和存储节点的内部原理;全面地分享了作者们在实际项目中所获得的宝贵经验,如怎样进行大数据的高效移植、Exadata上的一些常见误区、数据库资源管理,等等。本书是实践经验的总结和升华,可读性极强,不仅有对Exadata深入的研究,还有对它们优雅的展现,它将带领读者进入Exadata的殿堂。原作者中文版序首先我们要向这本书的中国读者问好。在一年前的Oracle Open World2011上,我们被问及是否愿意帮助中国的翻译小组将这本书翻译成中文,而今天,我们非常兴奋地看到中文译本即将出版。在这个过程中,我们的意外收获是这次翻译又再次为本书的内容做了一次技术审校,就本书的内容及复杂度而言,在写作过程中出现一些错漏在所难免,而中文翻译小组的出色反馈帮助我们纠正和澄清了这些错误。至今,这本书的英文版出版已有一年,而离Oracle发布ExadataV2也已超过两年。我们被Exadata在全球走红的速度所震惊(但是并不太惊讶)。写作一本如此崭新技术的书籍的一大挑战就是要面对产品本身的快速变化。幸运的是,它并没有太多令人耳目一新的新增特性,时至今日,本书仍然是学习Exadata的权威资料。书中展示的例子和实验仍然有效,并为读者带来了宝贵的见解。我们希望你能从本书中获益,希望本书可以帮助你了解智能存储的内部工作机理,也可以帮助你理解为什么称其为数据库技术的一个飞跃。——Kerry,Randy,Tanel

图书目录

作者介绍 xxxi

技术审校者 xxxiii

致谢 xxxv

前言 xxxvii

第1章 Exadata是什么 1

1.1 Exadata概览 2

1.2 Exadata的历史 3

1.3 不同的视角 4

1.3.1 数据仓库设备 4

1.3.2 联机事务处理机器 5

1.3.3 合并平台 5

1.4 可选配置 6

1.4.1 Exadata Database Machine X2-2 6

1.4.2 Exadata Database Machine X2-8 7

1.5 硬件组件 8

1.5.1 操作系统 9

1.5.2 数据库服务器 9

1.5.3 存储服务器 9

1.5.4 InfiniBand 10

1.5.5 闪存 10

1.5.6 磁盘 10

1.5.7 其他杂项 10

1.6 软件组件 11

1.6.1 数据库服务器软件 11

1.6.2 存储服务器软件 14

1.7 软件架构 16

1.8 总结 20

第2章 卸载/智能扫描 21

2.1 为何卸载如此重要 21

2.2 卸载包含了什么 25

2.2.1 字段投影 25

2.2.2 谓词过滤 30

2.2.3 存储索引 32

2.2.4 简单连接(布隆过滤) 33

2.2.5 函数卸载 36

2.2.6 压缩/解压缩 38

2.2.7 加密/解密 40

2.2.8 虚拟列 40

2.2.9 数据挖掘模型评分 43

2.2.10 非智能扫描类型的卸载 44

2.3 智能扫描的先决条件 45

2.3.1 全扫描 45

2.3.2 直接路径读取 45

2.3.3 Exadata存储 46

2.4 无法使用智能扫描的情况 49

2.4.1 未实现的功能 49

2.4.2 转换为块运输模式 49

2.4.3 跳过某些卸载操作 50

2.5 如何验证智能扫描确实发生 50

2.5.1 10046跟踪 52

2.5.2 性能统计(v$sessstat) 53

2.5.3 卸载适用字节 55

2.5.4 SQL监控 60

2.6 参数 63

2.7 总结 67

第3章 混合列式压缩 69

3.1 Oracle存储概述 69

3.2 Oracle压缩机制 72

3.2.1 BASIC 72

3.2.2 OLTP 72

3.2.3 HCC 72

3.3 HCC工作机制 76

3.4 HCC性能 77

3.4.1 加载性能 77

3.4.2 查询性能 82

3.4.3 DML性能 88

3.5 预期压缩率 98

3.5.1 压缩助手 98

3.5.2 真实案例 101

3.6 限制与挑战 107

3.6.1 迁移数据到非Exadata平台 107

3.6.2 关闭串行直接路径读取 108

3.6.3 锁的问题 108

3.6.4 单行访问 109

3.7 常见的使用场景 110

3.8 总结 111

第4章 存储索引 113

4.1 结构 113

4.2 监控存储索引 114

4.2.1 数据库统计值 115

4.2.2 跟踪 116

4.2.3 总结 119

4.3 控制存储索引 119

4.3.1 _kcfis_storageidx_disabled 120

4.3.2 _kcfis_storageidx_diag_mode 120

4.3.3 _cell_storidx_mode 120

4.3.4 存储软件参数 121

4.4 行为 121

4.5 性能 122

4.5.1 为空值进行特殊优化 124

4.5.2 字段值的物理分布 125

4.6 潜在问题 127

4.6.1 不正确的结果 127

4.6.2 类型转换 128

4.6.3 分区大小 131

4.6.4 不兼容的编程技巧 131

4.7 总结 133

第5章 Exadata智能闪存 135

5.1 硬件 135

5.2 Cache vs. Flash Disk 136

5.2.1 使用闪存作为缓存 137

5.2.2 如何创建ESFC 142

5.2.3 控制ESFC的使用 144

5.3 监控 145

5.3.1 存储监控 145

5.3.2 数据库监控 148

5.4 性能 149

5.5 总结 151

第6章 Exadata并行操作 153

6.1 参数 153

6.2 存储层的并行 154

6.3 自动并行度 155

6.3.1 操作和配置 155

6.3.2 I/O基准测试 158

6.3.3 自动并行度调整小结 162

6.4 并行语句队列 162

6.4.1 老方法 162

6.4.2 新方法 163

6.4.3 控制并行队列 167

6.4.4 并行语句队列小结 175

6.5 内存并行执行 176

6.6 总结 186

第7章 资源管理 187

7.1 数据库资源管理器 188

7.1.1 使用者组 189

7.1.2 计划指令 193

7.1.3 资源计划 194

7.1.4 资源管理器视图 195

7.1.5 等待事件:resmgr:cpu quantum 196

7.1.6 一个DBRM的例子 197

7.1.7 测试资源计划 202

7.2 实例隔离 210

7.2.1 配置和测试实例隔离 211

7.2.2 过量分配 215

7.3 I/O 资源管理器 216

7.3.1 IORM如何工作 218

7.3.2 Exadata管理I/O的方法 221

7.3.3 把所有的一切组合在一起 227

7.3.4 IORM监控和指标 230

7.4 总结 244

第8章 Exadata的配置 245

8.1 Exadata的网络组件 245

8.1.1 管理网络 246

8.1.2 客户端访问网络 246

8.1.3 私有网络 247

8.2 关于配置过程 248

8.3 配置Exadata 250

8.3.1 第1步:配置工作 250

8.3.2 第2步:DBM配置器 259

8.3.3 第3步:上传参数和部署文件 260

8.3.4 第4步:CheckIP(checkip.sh) 263

8.3.5 第5步:第一次引导Firstboot 265

8.3.6 第6步:准备安装介质 268

8.3.7 第7步:运行OneCommand 269

8.4 升级Exadata 273

8.4.1 创建一个新的RAC集群 273

8.4.2 升级现有的群集 275

8.5 总结 278

第9章 Exadata的恢复 279

9.1 Exadata的诊断工具 279

9.1.1 Sun Diagnostics:sundiag.sh 280

9.1.2 健康检查HealthCheck 282

9.1.3 CellCLI 283

9.2 Exadata的备份 287

9.2.1 数据库服务器的备份 288

9.2.2 存储节点的备份 292

9.3 数据库的备份 298

9.3.1 基于磁盘的备份 298

9.3.2 基于磁带的备份 298

9.3.3 从Standby数据库上进行备份 299

9.3.4 Exadata对RMAN的优化 300

9.4 Exadata的恢复 301

9.4.1 数据库服务器的恢复 301

9.4.2 存储节点的恢复 305

9.5 总结 325

第10章 Exadata等待事件 327

10.1 Exadata特有的事件 327

10.1.1 节点事件 328

10.1.2 触发事件的执行计划步骤 329

10.2 用户I/O类别中的Exadata等待事件 331

10.2.1 cell smart table scan 332

10.2.2 cell smart index scan 335

10.2.3 cell single block physical read 337

10.2.4 cell multiblock physical read 339

10.2.5 cell list of blocks physical read 340

10.2.6 cell smart file creation 341

10.2.7 cell statistics gather 342

10.3 系统I/O类别中的Exadata等待事件 343

10.3.1 cell smart incremental backup 343

10.3.2 cell smart restore from backup 344

10.4 其他类别和空闲类别中的Exadata等待事件 346

10.4.1 cell smart flash unkeep 346

10.5 旧事件 347

10.5.1 direct path read 347

10.5.2 enq: KO—fast object checkpoint 348

10.5.3 reliable message 349

10.6 资源管理事件 350

10.6.1 resmgr:cpu quantum 350

10.6.2 resmgr:pq queued 351

10.7 总结 352

第11章 理解Exadata的性能指标 353

11.1 Exadata性能指标的衡量 353

11.2 重温Exadata智能扫描的先决条件 354

11.2.1 Exadata智能扫描的性能 354

11.2.2 理解Exadata智能扫描指标和性能计数器 358

11.3 Exadata的动态性能计数器 359

11.3.1 何时及如何使用性能计数器 359

11.3.2 Exadata的性能计数器的含义和说明 363

11.3.3 Exadata的性能计数器参考 366

11.4 了解SQL语句的性能 383

11.5 总结 386

第12章 Exadata性能监控 387

12.1 系统方法论 387

12.2 SQL语句的响应时间监控 388

12.2.1 利用实时的SQL 监控报告对SQL语句进行监控 389

12.2.2 使用V$SQL和V$SQLSTATS监控SQL语句 400

12.3 监控存储节点 403

12.3.1 在存储节点利用CellCLI访问性能指标 403

12.3.2 使用Grid Control的Exadata存储服务器插件访问性能指标 404

12.3.3 使用哪些性能指标 413

12.3.4 监控Exadata 存储节点的OS性能 414

12.4 总结 427

第13章 迁移到Exadata 429

13.1 迁移策略 430

13.2 逻辑迁移 430

13.2.1 抽取和加载 431

13.2.2 通过数据库链复制数据 437

13.2.3 基于同步复制的迁移 454

13.2.4 逻辑迁移小结 461

13.3 物理迁移 461

13.4 备份和恢复 462

13.4.1 全备份和恢复 462

13.4.2 增量备份 464

13.4.3 传输表空间(和跨平台传输表空间XTTS) 465

13.4.4 物理Standby 468

13.4.5 ASM重平衡 470

13.4.6 迁移后的任务 473

13.4.7 物理迁移小结 474

13.5 总结 475

第14章 存储设计 477

14.1 Exadata 磁盘架构 477

14.1.1 失效组 478

14.1.2 网格盘 480

14.1.3 存储分布 482

14.2 创建网格盘 486

14.2.1 创建网格盘 487

14.2.2 网格盘大小 488

14.2.3 创建基于闪存盘的网格盘 491

14.3 存储策略 493

14.3.1 配置选项 493

14.3.2 隔离存储节点访问 494

14.4 节点安全策略 496

14.4.1 节点安全策略的术语 496

14.4.2 节点安全策略最佳实践 497

14.4.3 配置ASM范围安全策略 497

14.4.4 配置数据库范围安全策略 499

14.4.5 删除节点安全策略 501

14.5 总结 503

第15章 计算节点设计 505

15.1 配置考虑 505

15.2 Non-RAC环境配置 507

15.3 RAC集群 511

15.4 Exadata典型配置 514

15.5 Exadata集群 515

15.6 总结 516

第16章 忘记已知 517

16.1 双系统记 517

16.2 类型负载 517

16.2.1 Exadata Smart Flash Cache (ESFC) 518

16.2.2 可扩展性 519

16.2.3 写密集型OLTP负载 519

16.3 DW类型负载 519

16.3.1 启用智能扫描 520

16.3.2 阻碍智能扫描的因素 522

16.3.3 其他注意事项 533

16.4 混合负载 535

16.4.1 要索引还是不要? 535

16.4.2 优化器的局限 536

16.4.3 使用资源管理器 540

16.5 总结 540

附录A CellCLI和dcli 541

附录B Exadata在线资源 553

附录C 诊断脚本 555