Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601715
  • 博文数量: 51
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 1737
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-27 13:45
文章分类

全部博文(51)

文章存档

2011年(3)

2009年(19)

2008年(29)

我的朋友

分类: Oracle

2008-04-30 10:45:10

 从建索引失效
 
SQL> ALTER INDEX CXUSER.IDX_BM_TCON_LSKL_LSKLKLBZ REBUILD ONLINE;
ALTER INDEX CXUSER.IDX_BM_TCON_LSKL_LSKLKLBZ REBUILD ONLINE
*
ERROR at line 1:
ORA-08104: this index object 73492 is being online built or rebuilt
 
SQL> select obj#,flags from ind$ where obj#=96541;
      OBJ#      FLAGS
---------- ----------
     73492        512

 
2.
两节点实例(SWRAC1和SWRAC2)警告日志连续报如下错误:
Errors in file /oracle/oracle/admin/swrac/udump/swrac1_ora_6380.trc:
ORA-00600: internal error code, arguments: [6006], [1], [], [], [], [], [], []
Tue Apr 29 15:20:39 2008
Errors in file /oracle/oracle/admin/swrac/udump/swrac1_ora_7097.trc:
ORA-00600: internal error code, arguments: [6006], [1], [], [], [], [], [], []
.....
3.
研发反映数据库访问慢,对TCON_LSKL表无法做任何操作.
 
4.
当即检查数据库发现有大量的并发对TCON_LSKL表的UPDATA操作.数据库存在大量的OBJECT_LOCK.TCON_LSKL表处于锁状态.阻塞的session所执行的sql都是执行同一个相同的会话,都在更新那个索引字段.访问此表连接进来的进程无法释放,一直被挂起,消耗大量CPU资源.
 
5.metalink搜索分析:
 
这在系统比较繁忙的情况下,是由于在异常终止online rebuild操作的时候,oracle没来得及清理相应的临时段和标志位,系统认为online rebuild操作还在进行造成的。所以有可能会出现ind$系统表没有clean up的情况。这个时候做drop index,rebuild index,analyze table都会出现ORA-08104的错误。这种失败的错误会使oracle的smon进程清除ind$基表,将相应的索引的flags更改为0.这步操作每隔一小时做一次。还有清理清理临时段。每隔两小时做一次,但处理完的时间会不确定.
 
6.解决方法:
正常的处理方法就是重新启动数据库,一般情况下oracle会清除flags标志,恢复正常.
18点后重新启动两节点实例.然后重建TCON_LSKL表所有索引
ALTER INDEX CXUSER.IDX_BM_TCON_LSKL_LSKLKLBZ REBUILD ONLINE;
ALTER INDEX CXUSER.IDX_TCON_LSKL_LSKLKLBH REBUILD ONLINE;
ALTER INDEX CXUSER.IDX_TCON_LSKL_LSKLSTATUS REBUILD ONLINE;
ALTER INDEX CXUSER.PK_TCON_LSKL REBUILD ONLINE;
阅读(1517) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~