从最初接触Oracle,感觉它不仅复杂,而且连入门都很困难
后来接触多了,又觉得涉及面比较广,不如编程那么容易试验
再后来工作中应用很频繁了,开始觉得很多功能、特性都很赞
众多为性能、运行状态、异常准备的可查询对象、指数
大量的官方或非官方的技术、经验、教学文档
灵活多样的辅助工具,操作方式……
可以说,在某段时间,自己对于Oracle的评价是相当高的~
也许是以前的应用范畴不是很深入、很广泛
近来,接触了TB级准海量数据库,并独自做了几个任务
期间,Oracle一次又一次的BUG,让我能更客观的审视它了
最初接下了一个对现有某个几百G的大表增加分区
现有表已经存在时间范围分区,要求增加更早时间的分区
根据要求,最简单的修改分区直接添加的指令无法使用了(只能往后添加,不能往前……不便利……)
而解决方法,相对简便一些的就是分区分割split
大致思路和步骤就是,利用分割指令,对最早的时间范围分区进行分割
可以创建一个更早一点的分区,然后再对新生成分区继续分割,以此类推……
方案、脚本都准备好了之后,开始执行。。。。。。
可惜,执行没到一半,出错了。。。
提示ORA-00604和ORA-00001,通过metalink,得知真相
此乃BUG,BUG号3748430,官方的解决方式是安装相应补丁
可客户那边出于谨慎角度和其它综合考虑,决定不打补丁
等过两天进行数据库迁移的时候重新划分分区
虽然也可以不用去管这个东西,但还是好奇的稍微钻了钻
用oracle的10046事件进行跟踪,看了半天的天书文字……
最后查到了是某个sys下的系统表出现了某个唯一约束冲突
呃……系统的表……我也暂时没辙,只能作罢了
不过,这还仅仅是开始
过了两天,新机器和数据库环境都已经准备好了,准别进行新实例的建立
好,问题再次出现,开始装的是10.2.0.3数据库,结果在用裸设备建立实例的时候,竟然又报错
依旧在metalink上查到了相关BUG介绍(BUG号6020638)
在机房人员的配合下,试验了几个补救方式,但还是无果
无奈,只得将情况转告客户,建议升级到10.2.0.5
最终总算是升上去了,但新问题又出现了……
Oracle自带的企业管理器竟然进不去了
继续查询资料,然后再次得到此为OracleBUG的查询结果(BUG号8350262)
这个补丁我必须得升级了,难道让我以后不用OEM不成?!
正好我也练习了一下如何利用opach打补丁
前前后后折腾了2个星期,总算是搞定了任务
并且,自己在测试机上,试着把数据库从.3升级到.5
但还是有个别的BUG,暂时没有处理或无需处理
比如在.3版本的RAC环境中,查询GV$SQL试图,有时会报ORA-600错误(BUG号4634662,以前也碰
到过,升级或打补丁就可解决)
新的.5版本数据库的udump会产生警告信息(BUG号9772888)
强制中断长时间查询产生错误信息(ORA-600 17285,无需特别关注)
进行闪回查询时,超出有效查询范围,产生错误信息(ORA-01555,对DBA来讲是常见的异常信息)
经过一些列的折腾,最终算是按要求完成了任务
虽然碰到问题的时候,也觉得挺麻烦的
但毕竟这些经历,就是在积累经验
另外在2个多月的工作中,不少以前没接触的操作也稍微熟练了一点
其实,这些对于这个职位来说,真算不上考验
起码有很多资料可查,还有很充足的时间
顶多就算是衡量一下自己究竟有没有资格在这个行当里凑合生存~
到现在已经基本适应了新的环境和工作模式
接下来就要在运维现有系统的同时,深入看看以前模棱两可的东西了