内外兼修:Oracle ACED熊军谈Oracle学习

编辑手记:熊军是中国西部第一位,也是到目前为止唯一的Oracle ACE总监,在这篇文章中熊军描述了他的学习过程和理念供大家参考。

ORACLE 的学习,就好比武侠小说中学武功。要从三方面入手:

1、内功:针以学习 ORACLE 来说,内功就是对基本概念的掌握,ORACLE 架构的深入理解,原理的掌握。如果有兴趣和时间,研究一下 Internal 的东西,这好比修习易筋经,需要极大的毅力和长期的坚持。

2、招式:如果光有内功,没有招式,则会陷入空有高深内力,却无从发招的尴尬。学习 ORACLE 也一样,还是需要掌握功能的使用,具体到 SQL 的使用,各个性能视图的使用,数据字典的使用。如果没有这些,在进行操作时,会有找不到无从下手的感觉。

3、实战经验:武侠世界中的高手,都是从无数次战斗中取得经验,再武功大进。学习 ORACLE 也一样,如果没有充分的实验,实际生产环境的实战,仍然只能说是只能入了 ORACLE 的门,算不上登入大堂。

另外,学习过程中,多做笔记,多思考。做任何事,都需要多思考,学习 ORACLE 也不例外。对 ORACLE 的众多的功能和知识点,我们要经常思考,这个功能有什么好处,适用于什么地方,不适用于什么地方,每个知识点之间的联系等等。

甚至是要站在超越 ORACLE的高度,去思考 ORACLE 为什么会这样设计。另外,好记性不如烂笔头,除非是天才,很多东西,久了就忘记了。比如前段时间做过 CLUSTER 表的实验,记录一下概要,定期回顾,则能够不断积累深入,温故并且知新:

对 CLUSTER 下的表,不能 TRUNCATE,只能 TRUNCATE CLUSTR,这样 TRUNCATE CLUSTR 时,将截断 CLUSTER 下的所有表。 DROP CLUSTER 时,如果 CLUSTER 下有表,则不能 DROP。只能将 CLUSTER 中所有的表 DROP 后,才能 DROP CLUSTER。

在ITPUB的一次访谈中,我也提到学习思路和方法,一并记录在这里供大家参考:ACE访谈之二 - 熊军:不积跬步,无以至千里 。

arron刘: 今天我们采访的是熊军先生,首先简单介绍一下自己,以及现在从事的工作。 magic007: 大家好,我叫熊军,网名老熊( http://www.laoxiong.net )。一直从事Oracle数据库专业技术服务工作,有近10年的Oracle数据库使用和技术顾问经验。所服务的对象包括电信、金融保险、政府机关以及制造业等多个行业的客户。目前在云和恩墨西南片区带领团队为客户提供专业数据库服务。 arron刘: 据我了解您获得了Oracle ACE这个荣誉称号,你能简单给我们介绍一下ACE这个称号么? magic007: ACE是Oracle公司为那些在Oracle技术领域,除了数据库还包括其他产品如中间件、JAVA等,颁发的一个荣誉称号。以表彰那些在Oracle技术领域内具有很强技术水平又乐于向技术社区分享技术的人。所以要成为ACE,需要两个条件,一是有有比较高的技术水平,二是乐于分享,在技术社会里面有一定的影响力。 arron刘: 您为什么会选择数据库这条路呢?这条路上您是怎样一步步提高自己的技术水平,成为Oracle ACE的? magic007: 我最早是从事IT系统运维的,数据库、主机、网络都要维护。随着业务量和数据量的增加,系统也越来越慢,就尝试去优化系统,优化系统最主要就是去优化数据库。而优化数据库就需要全面地深入地理解数据库。在优化的过程中,我不断地去学习数据库的知识,然后发现Oracle数据库提供了很多有趣的特性,利用这些特性来解决问题,给我带来了很多的满足感和成就感。这样逐渐对Oracle数据库产生了很强的兴趣,这样就有一种内在的动力去更深入地学习Oracle数据库。 在学习Oracle数据库的过程中,逐步提高自己技术水平主要有以下几点:

  • 对Oracle数据库有浓厚的兴趣。这个是很重要的一方面。
  • 学习Oracle的官方文档,最基本的有《Oracle Database Concepts》、《Oracle Database Performance Tuning Guide》、《Oracle Database Administrator's Guide》,这三份官方文档,对于各个版本我都反复去读。
  • 学习其他一些技术专家的书,包括Tom Kyte、Eygle的书等等。
  • 在学习和实验的过程中,将一些心得体会、学习方法记录在个人技术博客上,在博客上写技术文章,是对文章中涉及的知识进行总结、梳理的过程,这对提高技术水平有极大的帮助。
  • 在工作中不断思考,比如解决一个问题,需要从原理上去解释为什么,一个问题是否有多个解决方案,每种解决方案各有什么优缺点。在问题解决后,再把这些案例涉及的知识进行梳理,写成文档,在这种方式下,解决一个问题就能获得技术进步。
  • 从Oracle数据库论坛比如ITPUB中获得进步,在ITPUB上有一些很有价值的技术文章,以及有很多值得研究学习的案例,通过这些案例和文章学习其他人的思路和方法。

通过以上的一些方法,就逐渐地一步一步地提高了技术水平,并且通过在论坛上进行技术讨论,参与书籍的编写、通过个人博客进行分享,这些方式一定程度上提高了自己的影响力,最后获得ACE称号是水到渠成的事情。 arron刘: 据我了解您曾经独立开发除了Oracle 恢复软件ODU,您能简单介绍一下什么是ODU软件么?有什么主要功能?在数据库恢复中起到什么样的作用? magic007: ODU全称为Oracle Database Unloader,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。 ODU主要的功能有:

  • 不需要运行Oracle数据库软件,ODU直接读取数据库文件解析数据。
  • 支持ASM,能够直接从ASM磁盘中导出数据,即使相关的磁盘组不能成功mount。
  • 支持表被truncate后的数据恢复。支持表被drop后的数据恢复。
  • 支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,ODU能够自动判断数据的类型。
  • 支持对数据块的修改,在某些情况下通过修改数据块能够让不能打开的数据库打开。

ODU是一种非常规的数据恢复手段。在数据库损坏、数据意外删除,又没有有效备份的情况下进行数据抢救。是一种常规恢复方式的有力补充。也可以认为是恢复数据的最后一种手段。 arron刘: 成为了Oracle ACE以后除了收获荣誉以为,还有什么其他的收获呢?这个称号对于自己职业生涯的影响? magic007: 其他的收获主要在于,获得一种认同感和肯定,同时也能够有更多的机会认识更多同行业中的朋友。 对职业生涯的影响当然很大,这是因为ACE是对自己技术实力的一种认可,这对于自己能够进入到真正重视技术、以技术为竞争力的公司或团队都是非常有帮助的,并且也更能有机会与其他ACE或者是技术专家共事。 arron刘: 您目前的工作内容主要是什么?您是如何给自己进行定位的?未来的职业规划什么? magic007: 目前我的工作内容主要有两部分,其一是带领我们公司(云和恩墨)在西南片区的团队,协调技术资源,提高团队中其他成员的技术水平;其二是为客户提供专业的数据/数据库技术服务工作,包括数据库的规划设计、安装部署、版本升级、性能优化、故障处理、高可用性设计等等。 我对自己的定位还是一个技术工程师,一方面是因为这才能最大化地发挥我的价值和在技术方面的能力及作用,另一方面我个人的兴趣和爱好仍然是在技术方面。 未来的职业规划,其实从个人职业上讲,最近几年没什么规划,就是在现在的技术团队中,随着团队的进步而进步。只能说从技术上讲,需要一直紧跟技术趋势,同时根据IT行业发展趋势,为客户提供更好的技术服务,比如随着企业信息化的方展,数据越来越重要,我们不光是围绕着数据库,还要围绕着数据来进行工作,挖掘数据本身的价值。这需要一定的技术积累。 arron刘: 您认为一个数据库从业者工作中最应该做的事情,最应该注意的事情,最应该杜绝的想法? magic007: 我个人认为数据库从业者工作中最应该做的事情是,把所有的操作以相关的数据都记录下来,这是一笔很宝贵的财富。 最应该注意的事情自然是安全和测试。每一个操作,都尽可能地测试,因为一些操作看起来很简单,却可能产生不可预料的结果。对于安全,主要是指数据安全,做好备份,这是很重要的一道防线,只有在有备份的情况下,操作错误时才有回退的可能。 最应该杜绝的想法,对于这一点,我觉得是不要有工作有捷径的想法。工作的捷径来自于技术的积累和经验的积累。很多从业者喜欢从百度、goolge搜索到的具体的操作方法不加思考地拿来就用,这样虽然能够解决问题,但是这会导致自己缺乏思考,缺乏对知识的系统掌握。而工作上的捷径应该是来自于自己对知识的全面掌握之后还有经验的积累,通过自动化、或者是通过脚本、自行开发的工具来帮助提升工作效率。 arron刘: 对目前正在数据库道路上辛勤前行的朋友有哪些建议、忠告? magic007: 我的建议是对于数据库技术,需要真正对技术感兴趣,而不是仅仅把技术看成是谋生的手段,同时"不积跬步 无以至千里",对于后面一点,从我个人的经验来说,系统化的扎实的基础知识很重要,我所接触的技术高手,基本上都是基础知识非常扎实,只有在基础知识扎实的情况下,在2-3年之内,甚至是更短的时间内,成长为高级的DBA才是有可能的。所以,沉下心来,专心技术,拒绝浮躁,这就是我的建议。 arron刘:谢谢熊军的精彩内容,我们可以看到每一个牛人在成功背后总是有着不为人知的努力,不积跬步 无以至千里,希望大家对此共勉。

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2016-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏韩伟的专栏

如何提高程序员的生产率(下)

目录 3. 开发过程... 12 4. 架构设计... 20 5. 管理激励... 23 三、 开发过程 沟通 软件通常都需要经过很多人和很多次的沟通才能生产出...

2924
来自专栏情情说

写好一个项目不容易

曾几何时,我多少次吐槽自己接触的项目,数落它们的种种不是,项目文件结构混乱、代码层次不清晰、严重的代码冗余、巨型代码块、缺少注释和日志、散落在各处的静态配置项、...

42811
来自专栏微信公众号:Java团长

如何快速成长为技术大牛?

不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己...

922
来自专栏杨建荣的学习笔记

MySQL数据清理的需求分析和改进

昨天帮一个朋友看了MySQL数据清理的问题,感觉比较有意思,具体的实施这位朋友还在做,已经差不多了,我就发出来大家一起参考借鉴下。 为了保证信息的敏感,里面的...

2685
来自专栏Linux Python 加油站

如何保住运维这个铁饭碗?Linux系统运维之修炼秘法

来源:马哥教育链接:https://mp.weixin.qq.com/s/727F4B_uL2aAPqJUsdRtfw在这个现如今的互联网高速发展的时代,如何才...

1377
来自专栏炉边夜话

Intel多核培训感想

         今天是参加Intel多核和多线程培训的第一天,感触颇深。因为目前我们正在开发一个分布式的多线程系统,前不久也做过一些优化,听了今天的课程,能产...

482
来自专栏悦思悦读

持续发布那些事儿

什么是持续发布 持续发布这个说法,一般情况下确实是和敏捷开发联系在一起。敏捷开发的scrum模式的一个重要概念就是持续发布。 按照理论上的说法:scrum的每一...

3066
来自专栏浮生的专栏

12种最受欢迎​​的编程语言

在机器的帮助下,我们的需要,想要和需求大量增加,全球市场也是如此,因此全球市场被数字网络或社区所包裹。我们被科技所环绕,被小工具包围 - 所有这些都通过编程或编...

3277
来自专栏个人分享

项目研发流程及管理之我见

随着工作年限的增长,我们从一开始负责一个功能,再到负责一个模块的数据字典及框架设计。再到负责整个系统的需求评审及架构设计。这一路见证着程序猿的成长。但当我们逐步...

853
来自专栏微信公众号:Java团长

如何快速成长为技术大牛?阿里资深技术专家的总结亮了!

导读:你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的思考和理解,希望...

852

扫描关注云+社区