【DBA】 Oracle 学习路线
出差归途火车上,有几个小时的时间,正好可以把Oracle 知识的学习框架梳理一下,这些都是Dave对Oracle的一些理解,共初学者参考。 本篇文章只介绍知识点,不涉及具体内容。
1 学习方法
很多初学者一直在门外徘徊的一个重要原因就是没有找到正确的学习方法,其实Oracle 需要系统的学习,这个过程可能需要2-3年。
最好的资料就是Oracle的官方手册:http://docs.oracle.com
当然,Dave的Blog 也是可以参考的,上面大部分文章都是测试过的,保证有效性。
CSDN: http://blog.csdn.net/tianlesoftware (不再更新,老文章依旧可以参考)
CNDBA 社区:http://www.cndba.cn/dave (当前正在使用的博客)
遇到问题的时候,首选google,实在不行在度娘,这2者之间的区别谁用谁知道。
学习本身就是一个不断提升的过程,遇到问题不要怕,多做实验,前期肯定是要多花点时间的,自己多独立思考,伸手一族是非常不好的,即使实在不明白,也要先独立思考几分钟,而不是遇到问题就直接问别人,这种情况即使别人告诉你了,下次遇到还是不会。
在问别人的时候,也尽量把自己的问题描述清楚,一个好的提问包含以下几个方便:系统环境,DB 环境,现象,日志。 这些是基本的信息,务必自己先分析一下。 通常来说,只要能把问题描述清楚,在结合google,基本都可以解决问题,很多人不会难就难在连问题都描述不行。
所以掌握正确的学习方法是第一步
2 Oracle 的体系架构
Oracle 的知识体系很庞大。 全部学完需要花大量的时间,这里对知识框架进行一个简单的说明,方便学习。
1. Oracle 进程体系
在这个部分需要了解Oracle 所有进程及其功能。
2. Oracle 内存体系
了解Oracle 内存的组成部分,PGA和SGA及组成。 这部分关系到数据库的性能,掌握有利于DB的优化。
3. Oracle 物理组成
Oracle 物理上由哪些文件组成,每个文件起什么作用。
以上三部分在官方文档上都有详细的说明,把官方文档通读一遍即可了解。
3 Oracle 环境搭建系
1. DB安装
根据目前的趋势,至少要掌握X86平台上Oracle 数据的安装。
2. Export/import 工具使用
Oracle 10g之前非常有用的数据迁移工具,工具使用简单,要了解如何使用。
3. Data Pump/expdp/impdp
传统导出导入工具的升级版,最主要的变化是缩短了命令执行的时间。
4. RMAN 备份恢复
对于DBA来说,只要有有效的备份,遇到问题的时候,心里是不会惊慌的。 RMAN 是生产库最主要的备份手段。但看到很多不严谨的环境中,仍有使用export/import 来进行备份的。
只想说,如果你觉得数据不重要,允许数据丢失,那么随便折腾,如果觉得数据重要,那么请使用RMAN来进行。
5. Data Guard
数据库容灾平台,简单高效,易维护。 中小企业推荐的容灾方式。
6. RAC
Oracle RAC 集群,高性能,高可用的数据库平台,一直都说,RAC 本身最主要的价值是体现在高性能,其次可用。根据通常的理解,任何软件组件越多,出bug的可能性就越高,维护的难度就会越大。 RAC 就是如此,系统,网络,硬件,DB bug 都可能导致数据库异常,维护好RAC 需要一定的功底。
4 Oracle 优化
每当有人在群里问优化的时候都会开玩笑说上闪存卡,这个是有一定道理的,数据库的瓶颈在IO,当IO已经无法优化的时候,上闪存卡确实可以解决性能问题,当然如果你不会优化SQL,上闪存卡也可以解决,只是提升多少的问题。
这里看下与优化相关的部分。
1. 了解Oracle 相关的新特性,比如直接路径度,自适应游标,这些特性可能会影响到DB性能,需要先了解。
2. 能看懂数据库的执行计划。
3. 了解多表关联的几种方式(Nest Loop,hash join,merge into…)
4. 常见Hint的使用
5. 了解常见的几种索引类型及特性,已经执行计划对索引的选择是否正确,比如全索引扫描,跳跃扫描等。
6. 永远都要确保对象上的统计信息是准确的,这个是CBO 来评估执行计划的重要参考,只要执行计划正确,索引合适,这条SQL 的性能不会差到哪里。
7. 当遇到某条SQL 异常导致数据库出现性能问题,比如CPU 100%的时候,需要知道判断SQL执行计划是否有变化,并知道如何利用SQL profile等来固定正确的执行计划。
8. 当然,最重要的一个前提,你得会写SQL,如果连SQL 语句都读不懂,自然谈不上优化。
5 DBA的心里素质
假如你是一个DBA,维护公司的所有DB。
当应用报告DB 性能突然下降,你是否知道如何处理?
当凌晨2点,接到系统告警,DB宕机,你是否愿意从暖暖的被窝中爬起来处理故障?
当重大节日,保障过程中出现重大DB问题,一群领导同事围观你的时候,你是否还能冷静的处理问题,小手是否会发抖?
所以心里素质也是DBA 需要提升的必备技能,当你能独挡一面处理故障的时候,你就成为了一名正在的DBA。 但是很多初学者没明白这点。
经常和朋友聊天,说现在的年热人不向我们当年那会,现在很多的年轻人浮躁,不愿意学,还要求多。
想当年,我们学习Oracle 的时候,资料很少,都是靠自己慢慢研究,可能一个问题要花几天来研究,然后把整个解决的过程写博客,进行分享,但现在写博客的人太少了,而且很多人是是连google,百度,都不去,上来就问别人,名其曰节省时间,实际上真的节省了吗,问题没搞懂,不能提升自己,下次遇到问题还是不会,只会浪费很多的时间。
每当看到这些迷途中的少年们,也会想到曾经的自己,因为Dave也曾迷茫过,所以最后以Dave博客上的座右铭与你们共勉:
The important thing in life is to have a great aim, and the determination to attain to it.
Dave
2016/11/9
回合肥的高铁上
About Me
...............................................................................................................................● 原文地址:http://www.cndba.cn/dave/article/334
● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文博客园地址:http://www.cnblogs.com/lhrbest
● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ群:230161599 微信群:私聊
● 联系我请加QQ好友(646634621),注明添加缘由
● 于 2017-06-02 09:00 ~ 2017-06-30 22:00 在魔都完成
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
...............................................................................................................................
拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。