123
 123

2007-06-25 Mon

20:15 对于troubleshooting的一点体会 (7616 Bytes) » eagle's home

在公司里一直做一些troubleshooting的工作,经常有一些新的问题出现,其中也不乏一些比较棘手的问题。谈一下自己做troubleshooting的一点体会吧,希望对大家有所帮助。

首先要具备坚实的oracle基础,对一些基本概念的掌握要有深入的理解。我建议一开始看书就以英文书为主,以一些中文原创的文章书籍为辅,中文翻译的最好不要看。也许你的英文基础不好,一开始看的时候会很吃力,不过时间长了你就会体会到当初坚持读英文书是多么明智的选择。我周围的DBA都是在读英文的书籍,现在看中文翻译的书籍真的是看不懂,不知道他在说什么,相反看英文的看起来很流利。如果你想做一名优秀的DBA,一定要看英文的书籍。很多人也推荐了很多书给大家,我这里说说我推荐列表吧。首先是官方文档中的《concept》, 《administrator’s guide》和《performance tuning》三本书,官方文档都可以在otn.oracle.com上下载到。如果你对大块头的英文书很惧怕,可以先从OCP的书看起,然后再来看这三本书。很多人都知道这三本书好,但是真正坚持看完的不多,真正理解的更少。如果你看懂了,那么恭喜你,你水平已经不错了。其他的好书很多,我推荐几本书。
首先是Jonathan Lewis的两本书《practical oracle 8i》(这本书我没有看到过电子版,如果谁有请告诉大家)和《 Cost Based Oracle Fundamentals》。Jonathan Lewis一直是我认为现在的oracle届第一牛人,他的这两本书都很经典。很期待他的另外两本CBO的书。
Steve Adams的名著《oracle8i.internal.services.for.waits.latches.locks》,好像是Steve Adams的唯一一本书。这本书很薄,但言简意赅,多看看很受益。
K Gopalakrishnan的《Oracle.Wait.Interface.A.Practical.Guide.to.Performance.Diagnostics.and.Tuning》
这本书也可以在itpub上下载到,是一本很实用的书,对oracle的一些常见的wait event做了很好的解释。做troubleshooting必读。
读书时力求理解透彻,不要一味追求进度。
这一阶段就是要多看书,多思考。

第二步,有了扎实的基本功,就要加强实践了。这时候需要做大量的事情来强化基础知识。看过的东西长时间不用的话,很快就容易忘记了,只有在实践中不断的运用,才能够深入的理解。这一阶段对工作环境有一定的要求,如果你现在的工作环境强度不够大,工作量不够多,建议你可以考虑换一份工作了。只要你第一阶段基本功打得好,不愁找不到合适的环境。其实各大公司的一些面试题都是在考察的基本功底。在做事的过程中不能盲目的做,要带着思考的去做事情。不要小看一些简单的事情,例如add column, create/drop table, insert/delete/update等,其实现在DBA常做的90%以上的都是简单的事情,但是能把简单的事情做好,做很多事情而不出错是很难的。你要考虑做这件事情会有什么影响,会有可能遇到哪些问题,出了问题后如何解决,如何去rollback,这些都是在你开始做之前就要想清楚的,而不是要等到出了问题以后才开始考虑。
网上有人犯一些很低级的错误,不要小看这些错误,不要以“我不是不懂,只是不小心”为借口来帮自己推脱。我网站的副标题是“We are what we repeatedly do. Excellence, then, is not an act, but a habit.”这句话我一开始是在公司的outage plan上看到的,亚里士多德的一句名言,觉得说的很好。人是由习惯组成的,人一天做的绝大部分事情是在重复自己的习惯,习惯也是最难养成的。而DBA必须养成细心的习惯,这个习惯比你多了解一些知识还要重要。另外对于一些知识的掌握,我觉得要以实用为主,太注重一些与实际应用没有关系的internal的东西没太大的意义。有人对在production系统上在线create/rebuild index后要加online不清楚,却对delay block cleanout说的头头是道。我不是说研究internal不好,但是要分清主次,以实用为主。这一点上很佩服Jonathan Lewis,他internal的知识很强的(在Steve Adams的书里提到过),但是他的文章都是以实用为主,不实用的东西他很少发布出来。
除了对习惯的养成,这一阶段还要注意对一些细节的搜集。Oracle管理上有很多零散的知识,而这些零散的知识大多是在不断的大量的高强度的实践中学到的。
这一阶段就是要多做事,少犯错。

说了上面两点,其实都是预备知识,下面开始说troubleshooting的一点体会。

1. 不要忽略任何一个细节信息。在问题出现的时候会有多种现象一起出现,例如active session很多,enqueue很多,latch free很多等等。如果你给出的解释不能够解释每一个现象,不能覆盖每一个小细节的话,很有可能你的解释是错误的,需要推翻后重新推理。看过柯南或金田一动画的都知道,如果有一个问题没有搞通为什么的话,是不能做出最后的结论的。

2. 要充满想像力。对于简单的问题可能一眼就可以看出原因,而对于一些复杂的问题比较困难。很多现象混杂在一起,很难分清楚哪个是起因,哪个是结果。这时候就要大胆的想像,将所有的现象结合在一起,思考出一个合理的解释。要善于挑战自己已有的知识,可能你的知识因为数据库版本的变化,或者oracle的一些bug在处理一些问题时已经不合适了。这时候不能固执的坚守自己的知识,要善于推翻自己,螺旋式的上升。

3. 推理要严谨。就是要讲证据,不能单靠想像来解决问题。如果你的解释是正确的,要找到证据来支持你的解释。通过一些其他现象的挖掘或者通过一些后续的实验来证明你的解释。对于一些bug,一定要找到相应的文档或者开tar得到oracle的确认,不能遇到一些奇怪的问题就说是oracle的bug。Oracle的bug是不少,不过也许你遇到的并不是bug,可能是知识上的缺失。

4. 深入的思考。有些问题在刚开始觉得难以想像,但是当你再深入一个层面后觉得原来所有的现象都是可以被完美解释的。这一点我在平时troubleshoot的过程中感触很深。以后有时间可以举例来说明。

5 解决方案要抓住重点。找到了根本问题后,解决方案就比较容易一点了。主要是基本功要扎实,一定要抓住重点。

切忌两点:

切忌概念不清
基本概念一定要清楚,例如PCTFREE, PCTUSED和 LMT,DMT没有关系。”cache buffer chain”和”buffer busy wait”是两种完全不同的等待事件,对select指定一个大的回滚段对ora-01555没有任何帮助,等等。

切忌生搬硬套,不要到网上找一个别人的例子往自己身上硬套。一定要彻底的理解问题发生的前因后果,才能够做出正确的判断,别人的例子只可以用来参考。

最后做个小广告:如果你觉得你的基本功扎实,但是缺少一个合适的环境的话,欢迎加入我们。我们的系统很繁忙,事情很多,挑战也很多。
有意可以发email给我: xfan (at) ebay.com

20:01 UNIX 生产力技巧 (186 Bytes) » developerWorks : AIX 专区的文章,教程
在日常的办公环境中使用 UNIX(R) 并不一定是非常笨拙的。使用 UNIX Shell 的强大功能和可用的系统工具可以极大地提高您在办公中的工作效率。
19:02 北京路透社DBA职位 (2242 Bytes) » Oracle & Starcraft
路透中国开发中心–路通世纪(中国)科技有限公司      全球新闻和信息提供商路透集团,为了进一步拓展中国市场,在中国投资1000万美元成立研发中心,致力于发展路透3000Xtra金融信息桌面终端、路透交易员系统、路透智库等核心产品,并预计未来三年内该中心员工将扩大两倍至600人。路透中国开发中心–路通世纪(中国)科技有限公司坐落于北京中关村软件园中心。它将帮助路透更好地向金融服务行业提供数据和信息,巩固其在全球的领先地位。研发中心将有力地支持路透Core Plus战略的实施,该战略包括向新的地区市场渗透以及开发高附加值内容。   路通世纪的开发部门将侧重于基础开发,以支持包括高端的3000Xtra桌面系统,路透交易员系统(Reuters Trader)和路透智库在内的路透产品。   新公司是路透几个全球战略开发中心之一。路通世纪目前雇用的200名员工中,70%毕业于包括清华大学,北京大学和中科院在内的中国一流高等学府。在今后的三年里, 员工的人数将增至600人,来满足公司的业务需求。 路透集团首席执行官Tom Glocer说:“这座开发中心是路透全球研发体系的重要一环。中国的大学正在培养新的一代世界级创新人才,路透希望利用上述人才,加速金融市场的进步和发展。这项投资凸显了我们对中国业务的重视,未来的中国将拥有全球领先的技术和金融市场,我们希望参与期间,与中国共同成长。” 研发中心提供职位如下: 公司主页: http://cn.today.reuters.com/news/default.aspx Senior DBA 发布日期: 12天之前 工作地点: 北京 招收人数: 若干 要求学历: 其他 薪酬待遇: 面议 工作部门: Design Team 职位描述: This is an excellent opportunity for an experienced System Administrator with at least 5 years in Oracle Database Management experience on Sun Solaris platform.  The role is working within the Design team who develop, maintain and support all reference data that is key to the users of Reuters [...]
14:58 Does Slow query log logs all slow queries ? (1772 Bytes) » MySQL Performance Blog

One may think one may use MySQL Slow query log to log all slow queries to catch problematic queries or for audit purposes. In fact however not all the queries are logged. I already mentioned mysql slave queries are not logged to slow query log and it looks like I was wrong connecting it just with replication.

In reality it is not the fact the thread is replication thread causes queries to be omitted from slow query log but the fact thread uses SET TIMESTAMP functionality. If you do this within normal connection result would be the same.

Why is this happening ? I guess it happens because of the way the code is structured. During query start current timestamp is stored to special value which will be used for the query execution by all NOW() calls internal timestamp assignments etc. At certain point someone thought it is nice idea to be able to go back to future or to the past and SET TIMESTAMP was implemented, which instead of patching bunch of function simply writes different timestamp to this variable. When query execution is completed, normally another time() is used to get current time and time difference between start and end time is used to check if query should be logged as slow query. This obviously does not work if start time can be in the future or in the past so slow query logging had to be disabled for such queries.

What does it mean ? Simply what you can’t really trust standard slow query log - some queries may be omitted from it. Also if someone would like to hide complex queries from you it can be easily done by using SET TIMESTAMP statement before running the query.

13:15 qb_name (322 Bytes) » Oracle Scratchpad
When Oracle tries to optimizer a complex SQL statement one of the first steps it takes is to transform it into something simpler. The ideal target (from the optimizer’s perspective) is to eliminate any subqueries and in-line views so that your SQL statement ends up as a list of tables in a single from clause. [...]
11:11 New AIX 5.3 "aixpert" Security Command (1199 Bytes) » AIXpert

AIX Security Expert is a system security hardening tool (TCP, NET, IPSEC, system, auditing). It saves time and ensures that all systems have the proper security configuration in an enterprise environment. It was added to AIX5.3 in TL6 (Aug 2006).

AIX Security Expert integrates over 300 security settings into a simple menu for selecting High, Medium, Low and Standard security. It also allows you to customize individual settings. It can be used to create a security profile that you can propagate to other systems.

AIX Security Expert can be run from Web-based System Manager, SMIT, or you can use the "aixpert" command.

For more information, search for "aixpert" on the AIX5.3 web page:

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.doc/doc/base/aixinformation.htm

Related information:

AIX Security Hardening

http://www-03.ibm.com/servers/aix/whitepapers/aix_security.html

AIX Functional Enhancements by Version

http://www-03.ibm.com/servers/aix/os/aixs2s.pdf

09:06 How do I check to see if my machine is capable of running para-virtualized guest or has a PAE support? (2034 Bytes) » Red Hat Magazine

Contributed by Ryan del Rosario

Release Found: Red Hat Enterprise Linux

Resolution:

To determine if the system has PAE support, run the following command:

# grep pae /proc/cpuinfo

If the following output shows, with the entry pae, then the system has PAE support and can run a para-virtualized guest:

flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2

If there is no output at all, then the machine is not capable of running a para-virtualized guest.

Red Hat’s customer service and support teams receive technical support questions from users all over the world. Red Hat technicians add the questions and answers to Red Hat Knowledgebase on a daily basis. Access to Red Hat Knowledgebase is free. Every month, Red Hat Magazine offers a preview into the Red Hat Knowledgebase by highlighting some of the most recent entries.

08:07 做别人早已不做的事 (1433 Bytes) » Chanel [K]
终于,魔兽世界-燃烧的远征简体中文版的前哨军WOW 2.0将于明天在国内登陆。 曾经的宣传语 - WOW: 做别人没做过的事,早已经变成“TBC: 做别人早已不做的事”, 时间的侵蚀之后,不知道还会有多少人回归,不知道还会有多少人有往日的雄心。 Just a game …

07:16 阻碍你学习进步的七种想法 (1069 Bytes) » 生活帮-LifeBang

学习,是你生命中最重要的事情之一。你需要时刻防止下面这些想法成为你学习的阻力:

  1. 我年龄太大了,学不动了。
  2. 我什么都知道。
  3. 我不够聪明。
  4. 一起学的人都比我聪明。
  5. 我学不来这个。
  6. 学而不专。
  7. 我可以改天再学。

“七种阻碍你有效学习的想法”-来自lifehack.org

00:50 天气变化,身体变差! (509 Bytes) » OracleDBA Blog

自从去了躺广州,在那个地方没有吃好没有喝好以后.

回来杭州的一个星期,整天浑浑噩噩的,每天吃不好,睡不好,又刚好赶上我们没有来得及买餐票,所以经常在外面去吃.

而外面,除了面,还是面.

繁重的工作,巨大的学习压力,搞的我十分的不适应.

这不,周六加了一天班以后,周日基本上是在家睡了一整天.

我现在绝对是亚健康状态.

谁来救救我.

00:15 《循序渐进Oracle》一书第一章目录 (2524 Bytes) » Oracle Life

©作者:eygle 发布在 eygle.com

自从书稿交给出版社之后,出版社的审稿、校稿工作已经开始,希望能够在这一阶段发现书中存在的问题,诸如错别字、句法、句读等方面的不妥之处,要在这一阶段排除掉,上一本书读者朋友们帮我找到了很多错谬之处,这一本一定要好好检讨一下。

上周五,我的编辑将第一章的审后稿发回给我,在周末我又做了一些校订和补充,在内容上又补充了一个小节,在代码和输出上做了大量的删减,刚刚排出了第一章的目录,发出来给大家看一看,第一章是这本书的重点,所以内容稍微多了一点:

这一章整体上是讲解数据库的创建过程,再由这个过程,由浅入深、由点及面的深入展开,涉及的内容的确是不少。
请大家看看目录,给些意见:)

-The End-

相关文章|Related Articles

评论数量(5)|Add Comments

本文网址:

2007-06-24 Sun