ORA-07445,升级10G的经历

         上上个星期,在将公司数据库从8.1.7.4升级到10.2.0.1后,出现了很多问题,在终于顺利RUN了之后一天,AP人员反映Tnsping非常慢,有时会要2万多豪秒,大部分时间要1万多。没过多久,生产线反映刷barcode的速度很慢。到底什么问题,察看alter log,发现如下错误:
Errors in file d:\ibm\dump\udump\ibm_ora_2788.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [kcbgtcr+4479] [PC:0x706507] [ADDR:0xFFFFFFFFFFFFFFFF] [UNABLE_TO_READ] [] 

d:\ibm\dump\udump\ibm_ora_2788.trc出现如下错误
opiino: Attach failed! error=-1 ifvp=0000000000000000

         在网上搜了很多贴子,均未找到答案。上itpub发了两个贴,也没有答案。
向一个朋友求助,朋友在metalink上发现类似问题,并将URL 给了我。原来这是10.2.0.1的一个BUG,在稍后的版本已经解决。是10.2.0.1用户连接时占用连接池的内存较多,大概3M多,且这个BUG导致无法正常释放内存。既然找到问题,解决会比较简单。
第一,在C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\SQLNet.ora加如下参数 
             SQLNET.INBOUND_CONNECT_TIMEOUT = 0
        这样可以减少每个用户连接使用的连接池内存至2M
第二,取消sga_max_size参数,降低SGA1.4G(共6G内存,原来SGA给了2.5G
第三,重新启动oracle
等数据库重新启动OK之后,发现CPU的使用率降低了,Tnsping恢复到正常的20豪秒。让生产线试试,反映恢复正常。
        如此正常的运作了一个星期,10.2.0.3的超大patch 也已经down下来了。计划抽时间更新patch,AP人员说好不容易OK了,不要再折腾了,快死人了。经理讲希望能够升级patch.因为既然是oraclebug,难免不会再出问题。我是一个追求完美的人。也希望能够升级patch.但一方面AP人员反对,我也没有来得及测试patch,生产线周末加班,无法停机,故没有升级。
        到了上星期日晚上, AP人员打电话到家里,反映问题复现。连回公司发现又是老问题。重新启动oracle的服务后让AP人员再试,问题依然。重新启动电脑(OS)后恢复正常。看来重新启动oracle是无法释放内存,另一方面说明必须升级patch.
        升级DB带来了很多问题,心里其实很难过的,觉得给经理带来了很多麻烦。今天会了一位资深DBA,说是升级oracle版本一般会有一季的阵痛期,我们大概经历了两周,他说其实是比较顺利的,听完之后,有了一点点欣慰

posted @ 2007-03-20 23:27  土鸟  阅读(4479)  评论(0编辑  收藏  举报