查看文档的描述,发现ORA-600错误的第二个参数,这里是0x6A5DEE1E0,代表Library Cache Object Handle.看来问题可能和LATCH有关。
但是根据信息在V$LATCH和V$LATCH_CHILDREN视图中,没有找到有价值的信息。
这个JOB由于失败会自动再次执行,检查JOB运行时的V$LOCK信息:
SQL> SELECT ADDR, TYPE, ID1, ID2, LMODE, REQUEST, BLOCK 2 FROM V$LOCK 3 WHERE SID = 75; ADDR TY ID1 ID2 LMODE REQUEST BLOCK —————- — ———- ———- ———- ———- ———- 0000000690342780 CU -1.703E+09 6 6 0 0 00000006903426F8 JQ 0 63 6 0 0 |
从V$LOCK中看不到什么特别有价值的信息,接着检查V$SESSION_WAIT,看看这个JOB在等待什么:
SQL> SELECT EVENT, P1TEXT, P1RAW, P2TEXT, P2RAW, STATE 2 FROM V$SESSION_WAIT 3 WHERE SID = 75; EVENT P1TEXT P1RAW P2TEXT P2RAW STATE —————– ————— —————- ———— —————- ——- library cache pin handle address 00000006A5DEE1E0 pin address 00000006B1A971A8 WAITING |
这次的信息就明显了,ORA-600错误的第二个参数就是V$SESSION_WAIT视图的P1RAW的值,而且从等待事件上也可以看到,问题就是出现在LIBRARY CACHE PIN的过程中。
重新查看METALINK的信息,这个错误可能发生在一个长时间运行的进程,在其运行过程中,所依赖的对象被编译或者删除了。
检查JOB调用的过程的状态:
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS 2 FROM DBA_OBJECTS 3 WHERE OWNER = ‘FUJIANREP’ 4 AND OBJECT_NAME = ‘P_GENERATE_REPDATA’; OWNER OBJECT_NAME OBJECT_TYPE STATUS —————————— —————————— —————— ——- FUJIANREP |
果然问题过程处于不正常的状态。
将JOB至于BROKEN状态,避免JOB再次运行:
SQL> EXEC DBMS_JOB.BROKEN(63, TRUE) PL/SQL procedure successfully completed. SQL> COMMIT; Commit complete. |
杀掉JOB对应的PROCESS:
SQL> SELECT SPID FROM V$PROCESS WHERE ADDR IN (SELECT PADDR FROM V$SESSION WHERE SID = 75); SPID ———— 14927 SQL> HOST kill -9 14927 |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。