新書推薦:
《
布鲁克林有棵树(孩子喜欢的阅读经典读本 基于真实生活的全球经典成长小说 走出成长困境 追逐梦想 人生励志 自我塑造小说)
》
售價:HK$
76.2
《
构建未来教育图景:实践以学生为中心的育人模式
》
售價:HK$
87.4
《
技术统治(未来哲学系列)
》
售價:HK$
53.8
《
中考热点作家孙道荣2024年散文精选集三册
》
售價:HK$
127.7
《
全球城市案例研究2023:基于网络的合作与竞争国际经验借鉴
》
售價:HK$
199.4
《
引爆:炸药、硝酸盐和现代世界的形成
》
售價:HK$
85.1
《
人类星球:我们如何创造了人类世(企鹅·鹈鹕丛书013)
》
售價:HK$
91.8
《
伏候圣裁:中国古代的君主与政治
》
售價:HK$
98.6
|
內容簡介: |
本书提供了全面、实用的建议,以保证在复杂的生产环境中,能可靠且高效地运行Oracle 数据库。七位主要的Oracle 专家对Oracle 12c、11g 和其他*近版本的Oracle 数据库汇集了一系列经过验证的解决方案、实践的例子以及循序渐进的技巧。每一个解决方案都是精心设计的,以帮助有经验的Oracle DBA和DMA 尽可能快地理解和修复严重的问题。本书不仅涵盖了LOB 段、undo 表空间、高GC 缓冲区等待事件、糟糕的查询响应时间、闩锁争用、索引、XA 分布式事务、RMAN 备份 恢复等内容,还深入地讲解了DDL 优化、VLDB 调优、数据库取证、自适应游标共享、数据泵、数据迁移、SSD、索引等内容,并介绍了如何解决Oracle RAC 问题。
|
關於作者: |
Tariq Farooq 是一名Oracle 技术专家、架构师和问题解决者,在世界上最大的一些组织得非常复杂的环境中从事各种Oracle 技术工作已经超过24 年。Mike Ault 于1980 年开始使用计算机,自1990 年以来,Mike 作为顾问,一直在使用Oracle 的行业工作。Paulo Portugal 作为Oracle DBA,有超过15 年的IT 经验。他是Oracle 11g OCM, Oracle 9i、 10g、 11g 和12c OCP,Oracle 10g 和11g 认证专家,Oracle DBA 10g 认证Linux 管理员,Oracle Exadata认证实施专家。
戴明明,网名:Dave,Oracle ACE-A,ACOUG 核心成员,浙江应用中间件与数据库用户组核心成员,CSDN 认证专家。9年DBA经验,在Oracle 高可用方面有一定的经验积累。 擅长Oracle数据库诊断、性能调优,热衷于Oracle 技术的研究与分享。曾在CSDN博客撰写博客1000余篇http:blog.csdn.nettianlesoftware。2012年度CSDN博客十大博客之星。
|
目錄:
|
第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
目录 ?O 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 ?O 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 表基数
|
內容試閱:
|
译者序一
最初的时候,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 DBADMA(Database Machine Administrator),本书将作为一本实用的技术指南,用于Oracle 数据库中执行日常的故障排除、调优和问题解决。
本书的作者是著名的、经验丰富的Oracle ACE、ACE Director 和Expert 团队,本书的目标是成为一本结合现实环境实际操作的例子和复杂的Oracle 数据库场景故障诊断的问题解决手册本书展示了如何:
y 选择捷径解决影响较大的问题 ;
y 使用从现场专家那里学到的可靠的工作技巧,让工作更有效率;
y 制定自己的应急计划;
前言
前言 ∣ XV
y 执行例行的主动维护,以确保环境的稳定性;
y 使用行业标准的实践工具和脚本,以找到更好的解决方案。
|
|