勇敢面对Oracle故障, 将爱情进行到底

 

     

    你的Oracle出过错误吗, 答案应该是肯定的,没有不出错的程序,更何况是如此庞大的体系。面对错误的时候,你是什么样的心情,会有一丝兴奋吗,还是无比的恐惧,如果是前者,恭喜你,你是一个富有挑战性的DBA人员了。如果是后者,你需要好好的思考一下你对Oralce错误的认识了。 我们对待维护和管理中的Oracle的错误,不应该恐惧,害怕,应该勇敢的面对。错误固然可怕,错误固然对我们的生产造成影响,但是我们只有用充满着自信和无畏的信心,以及进行中的充分的耐心和细心以及恒心,才能征服Oracle,正如我们征服我们的爱情一样。

     

    Oracle是个体系庞大的体系,所以错误和bug在所难免,我们在自己的数据库管理和开发的过程中,经常碰到大大小小各种各样的问题。比如经典的 3113和00600的错误,这个应该是让大家头痛也是很经典的错误问题了。

     

    其实除开类似这样的问题,大部分的问题Oracle还是对错误的提示的处理的 相当的严谨和规范的,所以我们完全可以通过错误号和错误的提示信息,通过伟大的google查询出相似的解决方案的,如Nike的广告所说,”一切皆有可能“,我们 需要的是面对错误的勇气和解决问题的决心,耐心和恒心。

     

    其实有很多的优秀的DBA人员,就是在不间断的自我练习和强大的面对错误的信心的下,不断的排查错误,不断的在错误中学习和归纳,最后而成为一代高手,体 验是最好的老师,Oracle也固然如此,经常有一些朋友问我,你怎么这么快就找到问题了,而且马上解决叻。我回答他们的总是一句话,我以前遇过这样的错 误,当时就是这样解决的。 所以,亲爱的DBA朋友,勇敢的面对错误,相信自己,将故障诊断进行到底。然后备份优先,这是DBA不可不信的信条。 

    这里我归纳了一些Oracle错误的方式 
    Oracle的错误分为好几种 
    数据库本身相关的 ORA-开头 
    操作系统相关的 OSD-开头 
    网络相关的的 TNS-开头 
    具体工具的 IMP-开头的 
    EXP-开头的 

    错误号为ORA-00600的,表示是ORACLE的内部错误, 这个错误之所以比一般错误棘手,是因为这个错误是Oracle的预留错误,类似于我们做开发的时候的Unknown Error。是我们不得知的错误,有的错误,可能是Oracle没有做这样的case处理,或者是没有发现这样的错误。所以我们经常有发现00600的错 误就马上反应到是Oracle的bug,也是这个道理了。如果是Bug,我们就只有在metalink里查到相关的bug号和fixed version,有的其实不是bug,是Oracle已经测试出来了,不过是没有时间或者是没有充分的测试,已经fix这个bug了,在正式的 product release的时候,不得不postpone这个问题。在小的版本里已经解决,或者是有一些隐含的参数可以避过,这样的错误,出现的时候会给出一些诊断 信息,我们有时看到的ORA-00600错误后面总是会有一些参数,这些参数就是一些提示信息,就是这样的错误,所以根据这些信息我们可以在 metalink或者是提供给ORACLE SUPPORT人员进行问题追踪。 

    下面也是来自于Oracle的错误有关的文档里的, 


    OPI Oracle Program Interface 
    KK Compilation Layer - Parse SQL, compile PL/SQL 
    KX Execution Layer - Bind and execute SQL and PL/SQL 
    K2 Distributed Execution Layer - 2PC handling 
    NPI Network Program Interface 
    KZ Security Layer - Validate privs 
    KQ Query Layer 
    RPI Recursive Program Interface 
    KA Access Layer 
    KD Data Layer 
    KT Transaction Layer 
    KC Cache Layer 
    KS Services Layer 
    KJ Lock Manager Layer 
    KG Generic Layer 
    KV Kernel Variables (eg. x$KVIS and X$KVII) 
    S or ODS Operating System Dependencies 


    这里的这些东东,看起来,大家也应该可以感觉的出来是Oracle里的一些模块,这是Oracle kernel里的一些系统模块,当我们出现错误的时候,他们可以告诉我们大致错误来自于哪里,对我们的问题排查也有一定的帮助。 

    当然,Oracle自己的开发人员都不知道有多少Bug,所以我们也不可能解决所以的问题了,要是这样的话Oracle的Serive部门也没有事情干 了,如果00600这样的错误,你可以尽量先根据其提示查询相关的升级信息和metalink饿信息。 如果别无他方,也自有求助于我们的Oracle服务人员和Service部门了。不过这时候你也不会有什么遗憾留下叻,毕竟你已经全部努力叻。你已经将你 的爱情进行到底叻。




     




     

     

    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 打赏
      打赏
    • 4
      评论
    评论 4
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    inthirties

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值