Oracle数据库问题解决方案和故障排除手册
  • 推荐0
  • 收藏1
  • 浏览669

Oracle数据库问题解决方案和故障排除手册

Tariq Farooq, Mike Ault, Paulo Portugal (作者)  戴明明 (译者)

  • 书  号:978-7-121-33134-3
  • 预计出版日期:2017-01-24
  • 页  数:420
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 原书名: Oracle Database Problem Solving and Troubleshooting Handbook
  • 原书号:9780134429205
  • 维护人:安娜
纸质版 ¥99.00
本书提供了全面、实用的建议,以保证在复杂的生产环境中,能可靠且高效地运行Oracle 数据库。七位主要的Oracle 专家对Oracle 12c、11g 和其他最近版本的Oracle 数据库汇集了一系列经过验证的解决方案、实践的例子以及循序渐进的技巧。每一个解决方案都是精心设计的,以帮助有经验的Oracle DBA和DMA 尽可能快地理解和修复严重的问题。
本书不仅涵盖了LOB 段、undo 表空间、高GC 缓冲区等待事件、糟糕的查询响应时间、闩锁争用、索引、XA 分布式事务、RMAN 备份/ 恢复等内容,还深入地讲解了DDL 优化、VLDB 调优、数据库取证、自适应游标共享、数据泵、数据迁移、SSD、索引等内容,并介绍了如何解决Oracle RAC 问题。
本书开门见山,直接探讨更深层次地问题原因,诊断方法和解决方案,帮助DBA和DMA尽可能快地修复影响生产环境的数据库问题。
译者序一
最初的时候,Anna 是约我写一本书。 但写书太费精力了,以前写过几年的博客,知道这里面的辛苦。而写书和写博客又有很大的不同。 写博客可以根据自己的想法,想到哪写到哪,但写书必须有一定的章法。所以Anna 约书的事情,虽然在写,但进展很慢,一拖再拖。2016 年上半年的时候,Anna 看我进展太慢,就问我是否愿意先翻译一本书。 我说可以试一试,但她给我看的书,并不怎么吸引我,就问还有没有其他的书,她说有。 然后从列表中一眼看到了这本书。着手翻译之前,也特意咨询了一下Lunar 大神,她说她一个星期可以翻译一章。但我开始翻译之后,发现里面的工作量太大了,遇到不太好翻译的段落,一下午也就只能翻译1 页。我的时间也太过于碎片化,一周根本翻译不完一章,而全书共有20 章,所以最终邀请了周捷和臧强磊加入到翻译团队。
翻译的工作断断续续进行了大半年,然后就是校验工作。 其实内心一直有顾虑,担心翻译得好,砸了原作者们的招牌,这些作者们都是行业里的前辈。 他们把个人的经验沉淀下来,如果因为我们翻译得不好,而影响了知识的传递,那就是真的犯罪了。 因为Gilbert Highet 曾经说过:A badly written book is only a blunder. A bad translation of a good book is a crime(写本烂书不过是件糗事,而把好书译成烂书则是犯罪!)。
真正翻译的那段时间,基本都是牺牲睡眠时间来进行的。可能是因为我个人的习惯,在晚上10 点到凌晨2 点这个时间段的效率特别高,夜深人静,没有其他杂事来打扰。有时候一个句子,要琢磨很久,有些句子,看完之后,能明白作者想表达的意思, 但是想用通顺的中文表达出来,却很困难。 而且这里面还有美语思维的问题。 比如原作者在表达一个意思时,用了他们很习惯的方法,但是我们的语言中没有这种文化,如果直译,句子就会显得特别生硬。在这些具体的细节琢磨的过程中,度过了一个又一个安静的夜晚。
比如现在,写着写着就又到了凌晨1 点。 一个人的书房,一盏台灯,还有那悠扬的Canon 相伴,这样的生活也很惬意。 每个人对生活的理解都不一样,而我就是希望我的人生过的更有意义一些,正如我博客的座右铭所说:“人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业..... ”
当然,每个人的时间都是有限的,每天都只有24 小时。 当你选择做一件事的时候,就做不了其他事情,这里首先要感谢我夫人给予我的支持。因为她的付出和理解,我才有时间安安静静的在书房里做我的事情。其次要感谢2 个小伙伴:臧强磊和周捷,感谢你们牺牲很多的休息时间来一起完成本书的翻译工作。
一个人活着的意义,不能以生命长短作为标准,而应该以生命的质量和厚度来衡量。我从事了10 年Oracle 数据库的工作,也希望能把自己对数据库的理解沉淀下来,做一点有意义的事情。 在这条道路上我会一直走下去。 但因为时间和个人精力的原因,在本书的翻译和校验过程中,虽然我们花费了很多的时间,但仍然难免会出现一些错误。如果您在阅读的过程中发现这些错误,请邮件告知我们,邮箱:ahdba@qq.com。 在此表示感谢。
最后感谢所有朋友们的支持与理解,希望你们也能从本书中获益。
戴明明/Dave
写于合肥
2017 年12 月9 日

译者序二
转眼之间,从事Oracle 相关工作已有五年时间。这五年间有两个人对我的工作影响很大,
在此表示感谢。
首先感谢我的大哥,在我大学期间就一直鼓励引导我学习Oracle 知识。因为他也从事Oracle 相关的工作,一是有这方面的经验,二是看到了Oracle 数据库在当今世界的巨大市场和前景。如今在Oracle 领域工作了五年时间,更加肯定了当初的选择是对的。其次感谢Dave,对我的Oracle 生涯有着重要的影响。Dave 在我刚工作时就已经是Oracle领域的大神了。很多知识都是从他的博客上学习的,对我学习Oracle 提供了莫大的帮助。另外,
也是Dave 给了我这个机遇,参与到本书的翻译工作中,更是完成了我的一个梦想,再次感谢。
随着大数据时代的到来和普及,“数据”毫无疑问是一个必不可少的角色,其重要性不用
多说,甚至关系到一个公司的安危。而数据库则承担了保护数据和有效运用数据的角色。由于
Oracle 是当今关系型数据库中的王者,因此我们有必要学习并运用好它。
本书是由国外几位Oracle 领域的大师所编写的,运用各种工具来处理运维中可能遇到的
各种性能故障问题,并结合具体案例提供有效的解决办法,其中也包含了一些Oracle 12c 的新
特性的介绍和运用,但是内容绝不仅限于此。无论你是从事Oracle 相关工作多年的老手,还
是刚进入Oracle 领域工作的新人,本书都是学习进阶的上佳选择。
在翻译过程中还要感谢我的同事,在工作上对我提供的帮助。感谢Dave,对我翻译工作
的巨大帮助,不仅要核对自己的翻译内容,还要校验我的翻译内容是否恰当准确。
实际上,翻译本书对我来说是一个很大的挑战:一是由于编写本书的作者都是这个领域的
前辈,涉及的知识面广,很多都是新的知识点。二是由于本人水平有限,虽然后期进行了反复
的校验,但是书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。
最后,谨以本书献给从事Oracle 数据库,和想要从事Oracle 相关工作的朋友们,共勉!
臧强磊
2017 年12 月于合肥
拿到这本书的英文原文,已有近一年的时间了,是在一个非常机缘巧合的契机下,几位好
友经过简单的沟通或者说是一拍即合,就开始各自的拜读和译文进程。说实话,对于翻译IT
技术类书籍,一直以来非常谨慎,一来是因为我本身在做第三方运维的工作,日常工作饱和度
非常大,很难保障大量固定的译文时间,担心无法满足出版书发行进度的同时更不希望辱没原
文。其次更为重要的是,乍一看市面上关于这方面的书籍已经很多了,不希望再做一些对读者
没有切实帮助和实际意义的事情。
但是当我认真阅读完这本由多位国外技术大神的合力巨著后,我被书籍中遍布每个章节的
大量干货所深深吸引,区别于市面上很多其他书籍,这本书最大的特点是没有任何基础知识的
赘述,各个章节都是开门见山地深入敌后,直接探讨更深层次的问题根因、诊断方法和解决方案。
这样的写作方式是非常难得的,因为市面上出版的很多书籍都还是从基础谈起,有一定基础的
读者在阅读的时候往往总是会选择直接跳过甚至只挑选部分段落。所以这本书籍的内容安排
显得尤为高效,更适合一些有一定技术积累的读者朋友,帮助他们进一步凝练和提高。也是
在这样的前提下,我们积极地开始了这本书籍的翻译工作,唯一的想法就是希望能够帮助更
多希望高效获取干货的朋友们,译文的每一个章节都对大家切实有用,这是我们莫大的动力
和荣幸。
由于这本书是由多名国外技术大牛合著完成,各自的写作风格也不尽相同,翻译过程中我
们在保障技术准确性的前提下,尽可能地风格统一地进行了文辞修饰,以期望本书中文版在读
者阅读时更具流畅性和思维连贯性。因为我们坚信翻译工作不仅仅是语义的转换,更重要的是
要注入更为本地化的阅读习惯和思维方式。当然,译文中一定存在不完美的地方,请读者朋友
们给予谅解和指正,联系邮箱:ahdba@qq.com。
译者序三
译者序三 ∣ VII
最后,感谢家人给予我们的大力支持,在枯燥和耗时的翻译过程中,尤其得到爱人Cherry
以及两个小宝贝的理解,牺牲了大量本该陪伴他们的周末和假期时光。感谢一同翻译此书的小
伙伴们,这是大家共同努力的结果。感谢出版社对我们翻译时间上的宽限与包容。还要感谢原
书的作者们,是你们写出了这么优秀的文字,才激发了我们的翻译热情。最后感谢读者朋友们
的理解和支持,希望你们喜欢本书并从中受益。
周捷/Jet
写于合肥
2017 年12 月10 日

前言
数据库管理员的生活正变得越来越有挑战性,艰苦的工作条件也迅速成为常态。DBA 面
临的问题是,在某些情况下可能会导致组织和单位每分钟损失数百万美元,甚至可能导致公司
的数据库基础设施瘫痪。虽然这些情况不太可能发生,但是为了避免和阻止它们,DBA 需要
提前做好准备。
本书的指导原则是展示如何尽可能快地修复可能会影响生产环境的严重的数据库问题。本
书通过检查在任意Oracle 数据库中随时可能发生的真实例子来指导读者完成必要的步骤,以
解决手头的问题。
您可以使用本书来解决一些可能会遇到的大问题,而不是浪费时间去试图寻找导致数据库
异常问题的解决方案。即使没有从本书找到解决当前问题的方法,您也将学到如何快速地在网
络上搜索到问题的解决方案。
本书背后的基本思想是,当在生产环境中遇到严重的Oracle 数据库问题时,本书会在黑
暗中为您提供光明。除一般的实践外,本书还探讨了一些常见的Oracle 数据库问题及其快速
解决方案,并以简易的形式解释了这些问题。
对于Oracle DBA 和DMA(Database Machine Administrator),本书将作为一本实用的技术
指南,用于Oracle 数据库中执行日常的故障排除、调优和问题解决。
本书的作者是著名的、经验丰富的Oracle ACE、ACE Director 和Expert 团队,本书的目
标是成为一本结合现实环境实际操作的例子和复杂的Oracle 数据库场景故障诊断的问题解决
手册。本书展示了如何:
y 选择捷径解决影响较大的问题 ;
y 使用从现场专家那里学到的可靠的工作技巧,让工作更有效率;
y 制定自己的应急计划;
前言
前言 ∣ XV
y 执行例行的主动维护,以确保环境的稳定性;
y 使用行业标准的实践工具和脚本,以找到更好的解决方案。
这本技术的、实践的、循序渐进的书,目标读者是Oracle 数据库系列产品的中级、高级
和专家用户。本书涵盖了Oracle 数据库软件的Oracle 11g 和Oracle 12c 版本的内容。
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
y 提交勘误:您对书中内容的修改意见可在 提交勘误 处提交,若被采纳,将获赠博文视
点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
y 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习
交流。
页面入口:http://www.broadview.com.cn/33134

目录

第1 章 LOB 段性能的诊断与调优...........................................................1
1.1 LOB 数据类型的介绍 ......................................................................................... 1
1.1.1 解决LOB 问题:一个真实的案例 ....................................................... 2
1.1.2 另一个真实案例:HW 分析 .................................................................. 4
1.1.3 BASICFILE LOB :更完美的解决方案 ................................................ 7
1.2 BASICFILE 与SECUREFILE LOB ................................................................... 7
1.2.1 LOB 新旧类型的差异 ............................................................................ 8
1.2.2 迁移BASICFILE LOB 到SECUREFILE LOB .................................. 10
1.3 PCTFREE 对LOB 的影响 ................................................................................ 12
1.4 解决糟糕的INSERT 性能 ................................................................................ 15
1.5 总结 .................................................................................................................... 15
第2 章 处理undo 表空间损坏.............................................................. 16
2.1 undo 管理概述 ................................................................................................... 16
2.1.1 UNDO_RETENTION 的重要性 .......................................................... 16
2.1.2 优化UNDO_RETENTION .................................................................. 17
2.2 DTP、XA 和回滚段 .......................................................................................... 18
2.3 undo 表空间损坏的恢复 ................................................................................... 20
2.3.1 预防、检测和修复损坏 ....................................................................... 20
2.3.2 处理内存损坏 ....................................................................................... 21
2.3.3 处理逻辑损坏 ....................................................................................... 24
2.3.4 解决介质损坏 ....................................................................................... 24
2.4 总结 .................................................................................................................... 27
目录 ∣ XVII
第3 章 处理全局缓存缓冲区忙等待事件................................................. 28
3.1 缓冲区忙等待事件概述 .................................................................................... 28
3.2 使用ORAchk 工具 ........................................................................................... 29
3.2.1 安装ORAchk ........................................................................................ 29
3.2.2 ORAchk 执行结果:示例输出 ............................................................ 30
3.3 查找GC 缓冲区忙等待事件 ............................................................................. 32
3.3.1 用ADDM 查找事件的信息 ................................................................. 33
3.3.2 用AWR 查找等待事件的信息 ............................................................ 33
3.3.3 用ASH 查找等待事件的信息 ............................................................. 35
3.4 查找GC 缓冲区忙等待事件的原因 ................................................................. 36
3.4.1 使用ASH 视图查找等待会话 ............................................................. 36
3.4.2 快速查找性能瓶颈 ............................................................................... 38
3.5 解决GC 缓冲区忙等待 ..................................................................................... 40
3.6 总结 .................................................................................................................... 41
第4 章 自适应游标共享.......................................................................42
4.1 ACS 工作算法 ................................................................................................... 42
4.1.1 绑定敏感与范围谓词 ........................................................................... 43
4.1.2 绑定敏感与等式谓词和直方图 ........................................................... 45
4.1.3 绑定敏感与分区键 ............................................................................... 46
4.2 ACS 的使用 ....................................................................................................... 48
4.2.1 监控ACS 的绑定感知 .......................................................................... 51
4.2.2 BUCKET_ID 和COUNT 的关系 ........................................................ 52
4.2.3 标记游标为绑定感知 ........................................................................... 55
4.3 游标绑定感知 ................................................................................................... 61
4.4 一个真实案例 .................................................................................................... 64
4.5 总结 .................................................................................................................... 69
第5 章 使用SPM 稳定查询响应时间..................................................... 70
5.1 入门指南 ............................................................................................................ 70
5.2 创建SQL 计划基线 ......................................................................................... 73
5.2.1 自动捕获计划 ....................................................................................... 73
5.2.2 从游标缓存加载计划 ........................................................................... 76
5.3 伪造基线 ............................................................................................................ 77
XVIII ∣ Oracle数据库问题解决方案和故障排除手册
5.4 Oracle 优化器和SPM 的交互........................................................................... 81
5.4.1 当CBO 计划与SQL 计划基线匹配时 ................................................ 82
5.4.2 当CBO 计划与SQL 计划基线不匹配时 ............................................ 84
5.4.3 当SQL 计划基线不可复制时 .............................................................. 89
5.5 SQL 计划基线的复制性 .................................................................................... 93
5.5.1 重命名索引 ........................................................................................... 93
5.5.2 修改索引类型 ....................................................................................... 95
5.5.3 向索引中添加尾列 ............................................................................... 96
5.5.4 反向索引 ............................................................................................... 97
5.6 NLS_SORT 与SQL 计划基线的复制性 ........................................................ 98
5.7 ALL_ROWS 与FIRST_ROWS ...................................................................... 100
5.8 自适应游标共享与SPM ................................................................................. 104
5.8.1 Oracle 11.2.0.3.0 中的ACS 和SPM .................................................. 105
5.8.2 Oracle 12.1.0.1.0 中的ACS 和SPM .................................................. 109
5.9 总结 .................................................................................................................. 112
第6 章 DDL 优化技巧和技术............................................................. 114
6.1 DDL 优化的概念 ............................................................................................. 114
6.2 DDL 优化的机制 ............................................................................................. 117
6.2.1 表基数估算 ......................................................................................... 117
6.2.2 虚拟列中的C_DDL 列 ....................................................................... 119
6.2.3 列组扩展中的C_DDL 列 ................................................................... 120
6.2.4 C_DDL 的默认值发生变化时 ............................................................ 122
6.2.5 C_DDL 列和索引 ................................................................................ 124
6.2.6 空列的DDL 优化 ............................................................................... 126
6.3 总结 .................................................................................................................. 130
第7 章 管理、优化、调整大型数据库.................................................. 131
7.1 大型数据库概述 .............................................................................................. 131
7.2 优化基本配置 .................................................................................................. 132
7.2.1 数据库仓库模板 ................................................................................. 132
7.2.2 优化数据块大小 ................................................................................. 133
7.2.3 大文件表空间 ..................................................................................... 134
7.2.4 调整SGA 和PGA ............................................................................... 135
目录 ∣ XIX
7.2.5 临时表空间组 ..................................................................................... 135
7.2.6 数据分区 ............................................................................................. 136
7.2.7 本地分区索引和全局分区索引 ......................................................... 136
7.2.8 数据压缩 ............................................................................................. 137
7.2.9 表压缩 ................................................................................................. 137
7.2.10 热图和自动数据优化 ....................................................................... 137
7.2.11 高级索引分区压缩 ............................................................................ 138
7.3 大型数据库性能调整的原则 .......................................................................... 139
7.3.1 真实的案例 ......................................................................................... 139
7.3.2 控制索引对数据加载的影响 ............................................................. 140
7.3.3 资源利用率的最大化 ........................................................................ 141
7.4 收集统计信息 .................................................................................................. 142
7.4.1 增量统计信息摘要 ............................................................................. 142
7.4.2 并发收集统计信息 ............................................................................. 144
7.4.3 设置ESTIMATE_PERCENT 的值 .................................................... 145
7.5 备份与恢复的最佳实践 .................................................................................. 145
7.5.1 Exadata 解决方案 ................................................................................ 146
7.5.2 利用Data Guard 环境 ......................................................................... 147
7.6 总结 .................................................................................................................. 147
第8 章 RMAN 备份恢复最佳实践....................................................... 148
8.1 完美的备份恢复计划 ...................................................................................... 148
8.2 概述 .................................................................................................................. 149
8.3 数据库备份策略的技巧 .................................................................................. 149
8.3.1 完全备份和增量备份 ......................................................................... 150
8.3.2 压缩备份 ............................................................................................. 150
8.3.3 增量备份 ............................................................................................. 151
8.3.4 快速增量备份 ..................................................................................... 151
8.3.5 Oracle 闪回技术之回退 ...................................................................... 152
8.3.6 基于磁盘的备份解决方案 ................................................................. 153
8.3.7 增量更新的镜像副本 ......................................................................... 153
8.4 验证RMAN 备份 ............................................................................................ 159
8.5 备份的优化与调整 .......................................................................................... 160
8.6 RAC 集群下的RMAN .................................................................................... 162
XX ∣ Oracle数据库问题解决方案和故障排除手册
8.7 恢复目录 .......................................................................................................... 163
8.8 恢复策略 .......................................................................................................... 164
8.9 数据恢复顾问 .................................................................................................. 165
8.10 总结 ................................................................................................................ 166
第9 章 使用AWR 分析优化数据库(一)............................................. 167
9.1 什么是AWR .................................................................................................... 167
9.2 知道要查找什么 .............................................................................................. 168
9.3 报告头部信息 .................................................................................................. 169
9.3.1 负载状况 ............................................................................................. 171
9.3.2 实例效率 ............................................................................................. 171
9.3.3 共享池内存 ......................................................................................... 172
9.3.4 等待事件 ............................................................................................. 172
9.3.5 平均负载 ............................................................................................. 175
9.3.6 实例CPU ............................................................................................. 175
9.3.7 内存统计数据 ..................................................................................... 176
9.4 RAC 特有的页面 ............................................................................................. 176
9.4.1 RAC 统计数据 .................................................................................... 177
9.4.2 全局缓存负载统计数据 ..................................................................... 177
9.4.3 全局缓存和队列服务 ........................................................................ 177
9.4.4 集群互连 ............................................................................................. 178
9.5 时间模型统计 ................................................................................................. 179
9.6 操作系统统计数据 .......................................................................................... 180
9.6.1 前台等待事件 ..................................................................................... 181
9.6.2 后台等待事件 ..................................................................................... 182
9.6.3 等待事件直方图 ................................................................................. 183
9.6.4 服务相关统计数据 ............................................................................. 184
9.7 SQL 章节 .......................................................................................................... 185
9.7.1 总运行时间 ........................................................................................ 185
9.7.2 总CPU 时间 ........................................................................................ 185
9.7.3 总缓冲区获取 ..................................................................................... 186
9.7.4 总磁盘读 ............................................................................................. 186
9.7.5 总执行次数 ......................................................................................... 186
9.7.6 解析调用 ............................................................................................. 186
目录 ∣ XXI
9.7.7 可共享内存 ......................................................................................... 187
9.7.8 版本数 ................................................................................................. 187
9.7.9 集群等待时间 ..................................................................................... 187
9.8 实例活动统计 .................................................................................................. 188
9.8.1 一致性读统计数据 ............................................................................. 191
9.8.2 数据块读统计数据 ............................................................................. 191
9.8.3 脏块统计 ............................................................................................. 191
9.8.4 队列统计 ............................................................................................. 191
9.8.5 执行计数 ............................................................................................ 191
9.8.6 空闲缓冲区统计 ................................................................................. 192
9.8.7 全局缓存统计 ..................................................................................... 192
9.8.8 索引扫描统计数据 ............................................................................. 192
9.8.9 叶子节点统计数据 ............................................................................ 193
9.8.10 打开的游标 ....................................................................................... 193
9.8.11 解析统计数据 .................................................................................... 193
9.8.12 物理读写统计数据 .......................................................................... 193
9.8.13 递归统计数据 .................................................................................. 195
9.8.14 重做相关的统计数据 ...................................................................... 195
9.8.15 会话游标统计数据 ........................................................................... 196
9.8.16 排序统计数据 ................................................................................... 196
9.8.17 脏队列长度汇总 ............................................................................... 196
9.8.18 表获取统计数据 ............................................................................... 197
9.8.19 事务回滚 .......................................................................................... 197
9.8.20 撤销更改矢量统计 .......................................................................... 197
9.8.21 用户统计数据 ................................................................................... 198
9.8.22 工作区统计数据 ............................................................................... 198
9.8.23 实例活动统计——绝对值 ............................................................... 198
9.8.24 实例活动统计——线程活动 ........................................................... 199
9.9 总结 ................................................................................................................. 199
第10 章 使用AWR 分析优化数据库(二)............................................ 200
10.1 表空间I/O 统计数据 ..................................................................................... 200
10.2 缓冲池 ............................................................................................................ 202
10.2.1 缓冲池统计数据 ............................................................................... 203
10.2.2 实例恢复统计数据 ........................................................................... 203
XXII ∣ Oracle数据库问题解决方案和故障排除手册
10.2.3 缓冲池建议部分 ............................................................................... 204
10.3 PGA 统计数据 ............................................................................................... 204
10.3.1 PGA 汇总 .......................................................................................... 206
10.3.2 PGA 总目标统计数据 ....................................................................... 206
10.3.3 PGA 总目标直方图 .......................................................................... 206
10.3.4 PGA 内存建议 ................................................................................... 208
10.4 共享池统计数据 ............................................................................................ 208
10.5 其他建议 ........................................................................................................ 209
10.5.1 SGA 目标建议 .................................................................................. 210
10.5.2 流池建议 ........................................................................................... 210
10.5.3 Java 池建议 ....................................................................................... 211
10.6 缓冲区等待统计数据 .................................................................................... 211
10.7 队列统计数据 ................................................................................................ 212
10.8 撤销段统计数据 ........................................................................................... 214
10.9 闩锁统计数据 ................................................................................................ 215
10.9.1 闩锁活动 ........................................................................................... 216
10.9.2 闩锁休眠分类 ................................................................................... 217
10.9.3 闩锁和自旋数 ................................................................................... 217
10.9.4 闩锁丢失源 ....................................................................................... 218
10.9.5 互斥锁休眠汇总 ............................................................................... 218
10.9.6 父类和子类闩锁 ............................................................................... 218
10.10 段访问区 ...................................................................................................... 218
10.11 库缓存活动部分 .......................................................................................... 220
10.12 动态内存组件部分 ...................................................................................... 223
10.13 进程内存部分 .............................................................................................. 224
10.13.1 进程内存汇总 ................................................................................. 226
10.13.2 SGA 内存汇总 ................................................................................ 226
10.13.3 SGA 分类和差异 ........................................................................... 226
10.14 流组件部分 .................................................................................................. 226
10.15 资源限制统计数据 ...................................................................................... 228
10.16 初始化参数的改变 ...................................................................................... 228
10.17 全局队列和其他RAC 部分 ........................................................................ 229
10.17.1 全局队列统计数据 ......................................................................... 233
10.17.2 全局CR 服务统计数据 .................................................................. 233
目录 ∣ XXIII
10.17.3 全局当前服务统计数据 ................................................................. 233
10.17.4 全局缓存传输统计数据 ................................................................. 233
10.17.5 全局缓存传输时间 ......................................................................... 233
10.17.6 全局缓存传输 ................................................................................. 233
10.17.7 全局缓存时间 ................................................................................. 234
10.17.8 互连ping 延迟统计数据 ................................................................ 234
10.17.9 客户端的互连吞吐量 ..................................................................... 234
10.17.10 互联设备统计数据 ....................................................................... 234
10.18 总结 .............................................................................................................. 234
第11 章 RAC 的故障诊断.................................................................. 236
11.1 RAC 的故障诊断和调优 ............................................................................... 236
11.1.1 ORAchk 工具 .................................................................................... 237
11.1.2 TFA 收集器 ........................................................................................ 237
11.1.3 自动诊断库 ........................................................................................ 237
11.1.4 告警和跟踪日志文件 ........................................................................ 237
11.2 运转良好的RAC 生态系统 .......................................................................... 239
11.2.1 最高可用性架构 ................................................................................ 239
11.2.2 优化和高效的RAC 数据库 ............................................................. 240
11.2.3 基于OEM 12C 的RAC 故障诊断 ................................................... 241
11.2.4 故障诊断的程序和命令 .................................................................... 242
11.3 总结 ................................................................................................................ 247
第12 章 利用SQL 顾问来分析和修复SQL 问题.................................... 248
12.1 OEM 12c :SQL 顾问首页 ............................................................................ 248
12.2 SQL 调优顾问 ................................................................................................ 249
12.2.1 在OEM 12c 中运行SQL 调优顾问 ................................................ 250
12.2.2 在SQL*Plus 中手动运行SQL 调优顾问 ........................................ 253
12.3 SQL 访问顾问 ............................................................................................... 253
12.3.1 在OEM 12c 中运行SQL 访问顾问 ................................................ 254
12.3.2 在SQL*Plus 中手动运行SQL 访问顾问 ........................................ 257
12.4 SQL 修复顾问 ................................................................................................ 258
12.5 SQL 性能分析器 ............................................................................................ 259
12.6 总结 ................................................................................................................ 260
XXIV ∣ Oracle数据库问题解决方案和故障排除手册
第13 章 使用数据泵迁移数据和对象.................................................... 261
13.1 使用数据泵 .................................................................................................... 261
13.1.1 复制对象 ........................................................................................... 262
13.1.2 数据泵模式 ....................................................................................... 263
13.2 处理私有和公共对象 .................................................................................... 263
13.2.1 保存和恢复数据库链接 ................................................................... 264
13.2.2 导出公共数据库链接和同义词 ....................................................... 264
13.2.3 验证导出的转储文件内容 ............................................................... 265
13.3 查找有效的INCLUDE 和EXCLUDE 值 .................................................... 265
13.4 导出数据子集 ................................................................................................ 267
13.5 修改对象属性 ................................................................................................ 269
13.5.1 将分区表导入为非分区表 ............................................................... 269
13.5.2 将表分区导入为单独的表 ............................................................... 269
13.5.3 屏蔽数据 ........................................................................................... 270
13.5.4 重命名表或使用不同的表空间 ....................................................... 270
13.5.5 使用默认存储参数 ........................................................................... 270
13.5.6 导入期间调整表空间大小 ............................................................... 271
13.5.7 合并多个表空间 .............................................................................. 271
13.6 通过PL/SQL API 使用Data Pump ............................................................... 273
13.7 监控和修改资源 ............................................................................................ 274
13.8 提升性能 ........................................................................................................ 275
13.9 升级数据库 .................................................................................................... 276
13.10 总结 .............................................................................................................. 277
第14 章 数据库快速迁移数据的策略.................................................... 278
14.1 为什么要迁移 ................................................................................................ 278
14.2 确定最好的策略 .......................................................................................... 279
14.2.1 实时与准实时迁移 ........................................................................... 279
14.2.2 接受只读 ........................................................................................... 279
14.2.3 可逆性 ............................................................................................... 280
14.3 考虑迁移什么数据 ........................................................................................ 280
14.4 数据迁移的方法 ........................................................................................... 281
14.4.1 事务性捕获迁移方法 ....................................................................... 281
14.4.2 非事务性迁移方法 ........................................................................... 283
目录 ∣ XXV
14.4.3 其他迁移方法 ................................................................................... 295
14.5 总结 ................................................................................................................ 301
第15 章 临时文件I/O 问题的诊断和恢复............................................. 302
15.1 临时表空间概述 ............................................................................................ 302
15.1.1 只读数据库 ....................................................................................... 303
15.1.2 本地管理的临时表空间 ................................................................... 303
15.1.3 临时表空间组 ................................................................................... 303
15.1.4 全局临时表 ....................................................................................... 304
15.2 解决TEMPFILE I/O 等待 ............................................................................. 307
15.2.1 过小的PGA ....................................................................................... 307
15.2.2 不恰当的TEMPFILE 扩展区大小 .................................................. 311
15.2.3 不恰当地使用GTT ........................................................................... 312
15.3 总结 ................................................................................................................ 312
第16 章 处理闩锁和互斥锁争用.......................................................... 313
16.1 闩锁和互斥锁架构概述 ................................................................................ 313
16.1.1 什么是闩锁 ....................................................................................... 314
16.1.2 什么是互斥锁 ................................................................................... 315
16.1.3 闩锁和互斥锁的内部结构 ............................................................... 315
16.2 检测闩锁和互斥锁争用 ................................................................................ 316
16.2.1 识别独特的闩锁 ............................................................................... 317
16.2.2 查找段和SQL 语句 .......................................................................... 318
16.3 闩锁和互斥锁场景 ........................................................................................ 320
16.3.1 库缓存互斥锁等待 ........................................................................... 320
16.3.2 library cache pin ................................................................................. 322
16.3.3 共享池闩锁 ....................................................................................... 322
16.3.4 缓存缓冲区链闩锁 ........................................................................... 323
16.3.5 其他的闩锁场景 .............................................................................. 325
16.4 棘手的闩锁争用 ............................................................................................ 326
16.5 总结 ................................................................................................................ 328
第17 章 使用SSD 解决I/O 瓶颈........................................................ 329
17.1 磁盘技术:SSD 与 HDD .............................................................................. 329
XXVI ∣ Oracle数据库问题解决方案和故障排除手册
17.1.1 固态闪存盘的崛起 ........................................................................... 330
17.1.2 SSD 闪存的延迟 ............................................................................... 331
17.1.3 SSD 的经济性 ................................................................................... 332
17.1.4 SLC、MLC 和TLC ......................................................................... 333
17.1.5 写性能与寿命 ................................................................................... 334
17.1.6 垃圾回收和磨损均衡 ...................................................................... 334
17.1.7 SATA 与 PCIe SSD ............................................................................ 336
17.1.8 在Oracle 数据库中使用SSD .......................................................... 336
17.2 Oracle 数据库的闪存缓存............................................................................. 337
17.2.1 空闲缓冲区等待 ............................................................................... 337
17.2.2 配置和监控DBFC ............................................................................ 339
17.2.3 使用FLASH_CACHE 子句 ............................................................. 340
17.2.4 闪存缓存的性能统计数据 ............................................................... 341
17.3 比较SSD 的部署选择 ................................................................................... 342
17.3.1 索引读 ............................................................................................... 343
17.3.2 OLTP 上的读/ 写负载 ...................................................................... 344
17.3.3 全表扫描性能 ................................................................................... 344
17.3.4 SSD 本地缓存和全表扫描 ............................................................... 345
17.3.5 磁盘排序和散列操作 ....................................................................... 346
17.3.6 重做日志的优化 ............................................................................... 349
17.4 存储分层 ........................................................................................................ 349
17.5 闪存和Exadata .............................................................................................. 353
17.6 总结 ................................................................................................................ 357
第18 章 为最佳性能设计和监控索引.................................................... 359
18.1 索引的类型 .................................................................................................... 359
18.1.1 B 树索引 ............................................................................................ 359
18.1.2 位图索引 ........................................................................................... 362
18.1.3 分区索引 ........................................................................................... 364
18.1.4 其他索引类型 ................................................................................... 366
18.2 同一列上的多个索引 .................................................................................... 368
18.3 索引的性能问题 ............................................................................................ 369
18.3.1 索引统计信息 ................................................................................... 369
18.3.2 高集群因子的影响 ........................................................................... 372
目录 ∣ XXVII
18.3.3 索引操作的注意事项 ....................................................................... 373
18.3.4 隐藏非选择的索引 ........................................................................... 374
18.3.5 RAC 数据库中的索引性能问题 ...................................................... 375
18.4 总结 ................................................................................................................ 377
第19 章 使用SQLT 提升查询性能...................................................... 379
19.1 安装SQLT ...................................................................................................... 379
19.2 使用XTRACT 方法 ...................................................................................... 380
19.3 使用XECUTE 方法 ...................................................................................... 381
19.4 其他SQLT 方法 ............................................................................................. 384
19.5 一个真实的案例 ............................................................................................ 385
19.6 总结 ................................................................................................................ 386
第20 章 处理XA 分布式事务的问题.................................................... 387
20.1 修复常见的分布式事务问题 ........................................................................ 387
20.2 修复幽灵分布式事务 .................................................................................... 388
20.2.1 信息存在,但事务不在 ................................................................... 389
20.2.2 ORA-1591 没有对应的信息 ............................................................. 389
20.2.3 提交或回滚之后事务挂起 ............................................................... 391
20.3 监控分布式事务 ............................................................................................ 393
20.4 总结 ................................................................................................................ 395

读者评论