Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109711
  • 博文数量: 55
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-13 10:59
文章分类
文章存档

2011年(1)

2009年(37)

2008年(17)

我的朋友

分类: Oracle

2009-08-03 18:06:51

      这几天我的oracle 总是报一些错误,以下是 alert_orcl.log的部分内容(每隔几秒钟报一次)


Errors in file /opt/oracle/admin/orcl/bdump/orcl_j000_7076.trc:
ORA-12012: error on auto execute of job 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)
Mon Aug  3 17:17:01 2009
Errors in file /opt/oracle/admin/orcl/bdump/orcl_j000_7076.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)
ORA-12012: error on auto execute of job 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)
Mon Aug  3 17:18:44 2009
Errors in file /opt/oracle/admin/orcl/bdump/orcl_j000_7106.trc:
Mon Aug  3 17:18:44 2009
Errors in file /opt/oracle/admin/orcl/bdump/orcl_j000_7106.trc:
ORA-12012: error on auto execute of job 1
ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)

        以下是解决的思路。当然是专职DBA提供的。

小毕查过,这个Obj#为239的对象就是job$上的索引SYS.I_JOB_NEXT。访问这个索引的时候报ORA-8102,就是说 I_JOB_NEXT或者JOB$出现了逻辑不一致,索引上的同一条记录的键值和表里的数据不一致,导致访问数据失败。I_JOB_NEXT不是一个 BOOTSTRAP$对象,因此这种情况一般来说重建一下索引就可以解决问题了。于是我建议小毕REBUILD 一下索引,小毕说他已经对这个索引做过REBUILD不过这个问题还是没有解决。

我说那就怪了,难道还要重启数据库才能解决?小毕听了后说索引REBUILD了应该就解决了这个问题了,重启不重启关系不大吧。不过还是先重启一下试试。我说那你就试试吧。

      我先重建了这个索引
            alter index  I_JOB_NEXT rebuild;
      但是alert文件还是报同样的错误。
      
       以下是第二轮的测试
     
根据这条来查找一下
      ORA-08102: index key not found, obj# 239, file 1, block 1674 (2)

      select obj#,name from obj$ where obj#=239;

     select index_name,column_name from all_ind_columns where          index_name='I_JOB_NEXT';
     drop index  I_JOB_NEXT;
     create index  I_JOB_NEXT on job$(next_date);


        我重启了一下数据库。
        这次我看到 alert_orcl.log 文件中只报了一次之前报的错误。看来还不干净。
        狠下心,再重启一下数据库。
        这次居然没有了。

        打完收工。










阅读(700) | 评论(0) | 转发(0) |
0

上一篇:防arp欺骗

下一篇:samba

给主人留下些什么吧!~~