大家好!最近遇到了一起比较诡异的问题,在cdb中查询cdb_objects竟然报表或视图不存在,以下是我们分析处理的整个过程。
环境介绍: 操作系统:LINUX 数据库版本:12CR1 是否RAC:是 |
某日,一哥们过来说一套CDB库在CDB中无法查询cdb_objects,上去一看发现RAC几个节点均报ORA-00942:


先去核实下基表视图是不是失效了,查询后发现并没有失效。

于是做了个10046跟踪下

在trace日志中我们发现查询cdb_objects的SQL解析失败了,与此同时也有一些业务SQL也是解析失败的。

我们查询了sharedpool剩余空间足够,排除sharedpool空间不足导致,初步怀疑是共享池中缓存的对象的数据字典信息出现异常导致。MOS了一圈也没有发现类似问题的文章,既然是解析失败,我们决定在空闲时段flush共享池试试,将一些没有正在被使用的共享池缓存刷出去。
哈哈,我们在报错节点FlushShared Pool之后,cdb_objects竟然可以查询了。
在没有现成的方法去处理问题时,我们通过一系列方法去验证自己的猜测。在不影响业务、保证数据库安全的前提下,大胆的迈出那一步。在问题面前,淦永远比不淦好!!!


文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




