产品特色
内容简介
本书是来自一线OracleDBA的实践工作笔记,凝结作者多年数据库管理运维心得;全书从运维、数据迁移和优化三个层面娓娓道来,精心筛选作者在实际工作中总结的技巧、对常见问题的高效处理方法,以及大量融入完善解决方案的诊断案例;尤其对数据库的宕机、容灾、监控管理、外部表迁移方案、系统调优、SQL优化等重点内容的讲解更是细致入微。
目录
第1篇 数据库运维篇
第1章 数据库安装配置
1.1 安装前的准备 1
1.2 安装数据库软件 5
1.2.1 方法1:OUI安装 6
1.2.2 方法2:静默安装 8
1.2.3 方法3:克隆安装 11
1.2.4 诊断案例:克隆安装后无法登录的问题 13
1.3 创建/删除数据库 16
1.3.1 方法1:DBCA图形建库 16
1.3.2 方法2:手工建库 18
1.3.3 方法3:DBCA静默建库 22
1.3.4 方法4:OMF建库 22
1.3.5 诊断案例:create database语句在10g、11g中的不同 23
1.3.6 创建数据库后的补充工作 26
1.3.7 删除数据库的步骤 29
1.4 关于SYSDBA、SYSOPER、DBA的区别和联系 29
第2章 常用工具和问题分析
2.1 SQL*Plus使用及常见问题 34
2.1.1 SQL*Plus使用细则 34
2.1.2 SQL*Plus无法启动的常见原因 41
特殊问题:乱码导致的SQL*Plus无法启动的问题 43
特殊问题:使用strace诊断奇怪的SQL*Plus登录问题 44
2.2 解析exp/imp及常见问题 47
2.2.1 exp/imp使用场景及示例 47
2.2.2 exp/imp使用常见问题 50
诊断案例:生产系统exp无法使用的紧急诊断和修复 55
诊断案例:外部表的导入导出问题 57
诊断案例:IMP-00013 问题及解决方法 58
诊断案例:使用strace分析exp中buffer设置的奇怪问题 60
经验分享:你可能不了解的dump文件 63
2.3 解析Datapump及常见问题 66
2.3.1 Datapump使用场景及示例 66
2.3.3 只言片语分析Datapump的工作原理 68
诊断案例:impdp异常中断导致的问题 70
诊断案例:使用impdp选项不当导致的数据丢失 73
第3章 服务连接配置
3.1 监听配置与客户端配置简介 76
3.2 网络服务配置 78
3.2.1 网络配置细则与实践 78
诊断案例:Session跟踪失效的问题和原因 82
3.2.2 监听配置文件格式探究——一个空格的威力 84
3.2.3 RAC中的TAF的配置 88
3.2.4 RAC中的SCAN的配置 90
3.2.5 通过单例模式模拟RAC连接 93
3.3 监听器无法启动的几个原因 94
诊断案例:使用strace分析TNS-12543的案例 96
第4章 数据库启/停和宕机问题
4.1 数据库启停的问题分析 99
4.2 数据库无法启动案例 100
诊断案例:数据库参数设置不当导致无法启动的问题 100
诊断案例:服务器增加内存后无法重启数据库的问题及解决方案 102
诊断案例:数据库shutdown之后无法启动的问题 103
诊断案例:RAC节点无法启动的ORA-29702问题及分析 105
诊断案例:连续出现的RAC节点问题 108
4.3 数据库无法登录问题分析 110
4.4 数据库无法登录案例 111
诊断案例:归档空间不足导致的数据库无法登录问题 111
诊断案例:Session Leak导致的数据库无法登录问题 115
诊断案例:undo缺失导致的数据库无法登录问题 118
4.5 数据库宕机问题和原因分析 119
4.6 数据库宕机问题案例 119
诊断案例:一条SQL语句导致的数据库宕机问题及分析 119
诊断案例:存储导致的数据库宕机问题及分析 121
诊断案例:I/O问题导致的数据库突然宕机的问题及分析 124
诊断案例:数据库导致突然宕机的问题及解决 126
第5章 容灾与备份恢复
5.1 备份恢复应用及实践 132
5.1.1 归档模式下的四种完全恢复场景 132
5.1.2 RMAN中三个不完全恢复场景 137
实验1:使用句柄实现特定场景的无备份恢复 141
实验2:关于DUAL表的破坏性测试 145
5.2 闪回应用及实践 149
5.2.1 关于delete、drop、truncate异同和无备份恢复场景 149
5.2.2 使用闪回查询备份数据 152
5.2.3 使用Flashback Query巧妙抽取指定数据 154
实战案例:巧用Flashback Database实现灵活的数据回滚 155
实战案例:巧用Flashback Database实现灵活的数据切换 156
5.3 Data Guard搭建与应用 160
5.3.1 常见的Data Guard隐患 161
5.3.2 11g Data Guard搭建实践 163
5.3.3 论Oracle备库的设计方案 169
5.3.4 实用至上的 Snapshot Standby特性 171
实践案例:Data Guard备库中的几个数据文件问题 175
实践案例:Data Guard备库的数据文件的迁移实战 179
诊断案例:由Drop Datafile导致的Oracle Bug 182
诊断案例:一个Oracle bug的手工修复 185
诊断案例:11g备库无法开启ADG的原因分析 188
第6章 监控管理和故障处理
6.1 Zabbix、Orabbix简介 191
6.2 Zabbix Agent部署 191
6.3 Orabbix的部署 194
6.4 浅谈Zabbix和Grid Control的优劣 197
6.5 Orabbix定制监控Oracle的简单配置 198
实践案例:Orabbix结合Python发送图形报表 200
实践案例:Zabbix中配置Data Guard的监控 205
6.6 两条腿走路更稳当——硬件监控很有必要 207
6.7 运维平台的建设思考——元数据管理 209
6.8 监控盲点与诊断案例 210
监控盲点:由DUAL导致的一个潜在的监控问题 210
诊断案例:备库CPU使用异常优化 213
诊断案例:两条报警信息结合分析DG问题 216
诊断案例:监控反被监控误——一则Orabbix报警的分析 222
诊断案例:自定义监控项快速定位问题 224
诊断案例:CPU报警信息的分析 226
前言/序言
DBA前途光明且任重道远
Oracle作为全球最大的软件企业之一,它的发展历程也见证了IT行业的兴衰与成长。
从关系型数据库、分布式系统、服务器、互联网计算到云计算,Oracle的目标是让客户和合作伙伴更快地适应并采纳这些新技术,将风险和成本降至最低。尽管这些年去IOE的风潮依旧,但是毫无疑问Oracle依然是RDBMS的王者,而且在技术和战略上,Oracle仍然在一路高歌猛进,并且全面引领行业迈入了云时代。
据Gartner的权威报告分析,全球公有云服务市场规模2016年有望达到2 040亿美元;较2015年的1 750亿美元增长16.5%,而且云服务呈现出的这种强劲发展势头有望在未来的5~7年内仍然保持下去。在国内,2015年中国云计算产业规模约为1500亿元,年增长率超过30%,产业结构不断优化,是全球增速最快的市场之一。
Oracle在云上的研发和产品创新投资极高,据早期的官方数据显示,12c历经5年多的开发,包含500多种新特性,投入了2 500多人/年的开发,每天100多万次特性测试,120多万小时的压力测试,而且12cR2也即将在2016年正式发布。
数据库技术就是在这样的大环境下不断地创新、改进和发展,在海量数据的高性能和分布式扩展,一体化软件与硬件集成,应用开发简化,IT架构的统一融合,业务响应的快速提升和IT成本的控制,这些大部分企业亟待解决的需求也会得到持续稳定的落地实现。
而作为一个Oracle DBA,依旧任重道远,因为行业里面水涨船高,我们可能会面对来自行业和工作的压力,需要始终保持学习的动力,这样才足以应对更多更复杂的问题挑战。在工作中碰到了一些问题,有些可以根据经验马上得以解决,有些需要借助专业网站(比如MetaLink)、社区、论坛或者博客来得到一些相关指点,有些问题暂时没有解决,可能就会搁置下来,这也许就是我们工作的基本态度。如果你只是抱着把工作完成即可的态度,一定要静下心来想想了。
写书的缘起
我是一个坚持写技术博客的人,最开始的博客是零零散散地记录日常工作,记录问题和解决方法,勤则几天更新一次,慢则几周更新一次。
我也知道任何事都贵在坚持,道理我也懂,但是有时候感觉还是缺乏执行力,听说一个行为坚持多少天就会成为习惯,于是在2014年2月的一天,我下定决心挑战一下自己,我想看看我到底能够坚持多久,能不能成为一个习惯,当时暗下决心坚持每天写一篇博客,这一路竟然坚持了下来,截止到2016年4月,我已经坚持了近800天,当然我还会继续坚持下去,就如同我最开始给自己的目标一样。
最开始是满腔热情,但是到后来,发现还是遇到了一些瓶颈。我每天都有要放弃的念头,但是都是一边说服自己,一边继续在晚上睡觉之前逼着自己完成博客。
随着博客的内容量越来越多,有些网友在博客和我的互动也越来越多,突然我发现原本是利己的事情慢慢变得利人了。我也感受到了坚持的价值所在,但是我慢慢地发现同样一个问题总是会有各种不同的可能性,当被一个看似很简单的问题折腾得精疲力尽的时候,最后发现可能解决问题的方式很简单,甚至很让人唏嘘无奈。问题经常会重复出现,但是不是简单的重复,因为很多问题都是在特定的场景中发生的,原因也是五花八门,很多看似诡异的问题其实明白了其中的原委就会感觉很简单,因为它本身并不神秘。
而另外一方面,尽管对很多问题都写了博客总结,但是有些问题当时没有保留更多的日志和处理过程记录,在碰到问题分析时就会有一些弯路甚至错误,所以这件原本利己利人的事情也让我会有一些压力。博客写的内容多了,技术扩展得少;技术问题解决得多了,技术思想总结得却少,这些都是我需要改变提升的地方。如果能把自己的工作经验形成一套相对完整的知识体系,并加入个人的独门见解干货,很多问题的处理就会得心应手。
就这样在我继续坚持写博客的某一天,一个偶然的机会,接到了中国铁道出版社荆波编辑的邀请,我决定把自己的工作内容以书的形式整理出来,系统性地呈现给大家,而书中也需要保留工作实战的味道。
古人云:“若起不得法,则杂乱浮泛”。虽然写书的想法是好的,但是对自己思绪的整理和对众多材料的截取,如果把所有知识点都一股脑儿罗列出来,这样的话,弊大于利,读者在阅读的过程也会容易抓不住重点,无章法可循。
因为Oracle相关的技术图书已然非常丰富,所以我选择了数据库运维、数据迁移、性能优化这三个方面。一方面能够突出工作笔记的特色,另一方面也避免写出过多重复经验的内容,而且个人认为这三个方面也是DBA的一个进阶层次,因为我在这些方面投入了大量的时间和精力,也是这么一路走过来的。
本书适合的读者对象
Oracle DBA或者开发人员。
有一定的Oracle基础,并且期望能够提升自我的读者。
给读者的一些建议
(1)时代在变,一专多能;现在的技术发展更新很快,学习不要拘泥于某一项具体的技术,要不断扩展学习,对比学习,一专多能有两个层面,一个是横向扩展,比如在数据库方面有一定的经验和建树,可以同时根据工作需要扩展、开发、中间件、系统层面等。另一个就是纵向扩展,即目前是以Oracle为主要工作内容和方向,那么也可以扩展学习其他关系型数据库,NoSQL数据库或者NewSQL数据库,总之要拥抱变化。
(2)很多问题不是问出来的,而是实践出来的;我收到了很多网友的提问,绝大多数情况下我都会做回复,在这个过程中其实自己也学习了不少知识,当然也有很多的感悟和见解,我始终认为问题不是问出来的,而是实践出来的,就如同本书的内容一样,如果你抱着看完本书就能够掌握所有的技巧和技能,可能要让你失望了,学习有法,而无定法,贵在得法,书中我想要表达的也是这个意思。
(3)多参加社区、社群的活动和技术交流问答;对于参加社区、社群活动,自己也是深有感触,可能技术圈子的人性格相对比较内敛,在技术上态度还是开放的。多参加一些社区、社群的交流,可以让自己从不同的视野来看待同一件事物,对于日常技术交流可能自己一个耐心地解答就会帮助到网络里无助的新手,可能自己不能解决的技术难题,在社群交流中就会发现别人已经有了最佳实践。学习是相互的,帮助也是相互的,而不是靠几个人就能够完成这些,都需要一点一滴地投入和积累,此外还有一个优点就是能够认识很多朋友。
(4)勤于总结;在这方面自己也是深有感触,学习的过程是一个不断积累的过程,戒骄戒躁,不要猴子掰包谷式的学习,就如同我们刚入行就希望公司给我们最核心系统的权限,这个可能性不大,我们需要不断地努力来赢得同事和领导的信任,而通过这些努力的过程也积累了经验,这些经验如果不加以系统的整理和归纳,要么被遗忘,要么成偏门秘籍,Oracle数据库发展至今已经30多个年头,可能很多旧版本中的功能特性就是工作中的痛点,在新版本中很可能就会改进,而一味墨守成规,不总结积累,你的知识库就得不到更新,还在使用过时的方法处理新的问题。
本书内容预览
本书会以工作笔记的形式循序渐进地讲解DBA工作中的一些常见问题和处理方法。
全书共分为三篇,共14章,全面介绍数据库运维、数据迁移、数据库优化的工作内容,在这些知识点中也穿插了大量实例。第一篇(第1~6章)详细介绍了数据库安装配置、常用工具和服务连接配置,对数据库启停和宕机问题也着重进行了解读, 此外还包括容灾与备份恢复, 监控管理和故障处理的内容;第二篇(第7~9章)介绍了数据库升级,对数据迁移的常用方式和问题进行了详细说明,因为自己对数据迁移使用外部表深有感触,所以也自成一章娓娓道来其中的苦与痛;第三篇(第10~14章)介绍了优化工具简介和定制,调优内容涵盖实例调优、系统调优、SQL优化的前奏和SQL需求审核,最后介绍SQL优化的技巧,深入浅出地对一些优化问题进行了总结。
感谢
写书的过程还是很痛苦的,因为里面的各种细节都需要考虑,出版方面自己也是门外汉,在这个过程中难免犯了很多低级错误和失误。书中的技术术语是否得当、举例和比喻是否恰当等,在书的结构和内容的考量上,我和本书策划编辑荆波老师也反复进行了讨论和校正。在工作忙碌之余,坚持写技术博客,同时又花费不少时间来编排图书内容,着实是一件很辛苦的事情,但还是坚持了下来,想到读者能够在我的一些案例中得到一些启示和帮助,其实是一件很让人欣喜的事情。
当然图书的内容质量也离不开朋友们的支持,感谢盖国强,杨志洪为本书作序,同时感谢黄远邦,熊军,怀晓明,丁俊,马红,洪烨,卢飞,蔡皓对于书稿的审阅,他们都是奋斗在一线的DBA,很多都是行业先锋,顶尖高手,在工作中积累了大量的实践经验,感谢他们对本书给出了很多宝贵的建议。
完成本书也离不开家庭的大力支持,感谢妻子雪丽在我写书没有思路以及动力的时候给予我支持和鼓励,而且还参与了全稿的内容审核,感谢父母默默地支持我的想法,虽然他们看不懂我写的内容,但是总是会问问写书的进度和想法。还有我可爱的女儿珊珊,是我生活中的精神依靠,看着她活泼可爱的模样,我会更有动力来努力工作。
感谢荆波老师对于本书的大力支持,在所有的环节都严格把关,一丝不苟,能够写成本书,与他的帮助是分不开的。
由于本人知识水平有限,书中难免存在着一些错误和不妥之处,敬请批评指正,如果您有更多的宝贵意见,也欢迎在我的微信公众号(jianrong-notes)讨论交流,大家一起学习交流,共同进步。
Oracle DBA工作笔记:运维、数据迁移与性能调优 下载 mobi epub pdf txt 电子书 格式