ITPub博客

首页 > 数据库 > Oracle > rebuild online 索引,中途失败:

rebuild online 索引,中途失败:

原创 Oracle 作者:weiranjie 时间:2008-01-23 10:22:57 0 删除 编辑


1. rebuild 索引在业务不忙的时候做

2. 中途是不能主断的

3. oracle 会自动清除(时间不同)

4. 通过重新启动数据库 oracle 自动清除

5. 通过修改系统表(oracle 9i)

[@more@]

update ind$ set flags=flags-512
where obj#=(select obj# from obj$
where owner#=(select user# from user$
where name='WRJ'
) and
name='IDX_TEST1'
);





select flags from ind$
where obj#=(select obj# from obj$
where owner#=(select user# from user$
where name='WRJ'
) and
name='IDX_TEST1'
);


SQL> connect wrj/wrj
SQL> connect wrj/wrj

多一张临时表:
SQL> select table_name from user_tables;
SYS_JOURNAL_106607

SQL> alter index IDX_TEST1 rebuild online;

Index altered.

xzh2000:

当我们rebuild index online失败后,smon进程会清除sys_journal_xxx(xxx是object_id)以及其它的不一致的东西,在smon清除它们之前,是不能再进行rebuild index online的,如果要清除它们,需要执行dbms_repare包的online_index_clean过程来处理...


在9206,9207,10.2.0.1中smon不会很快地清除index rebuild online失败所带来的对象,在9208,10.2.0.2,11g中这个bug才被fixed.所以在9206,9207,10.2.0.1这些版本中,当我们对大的索引进行index rebuild online时,不要随意地中断rebuild index online操作,否则smon可能需要很久才能清除临时对象。。。


你的理解基本上是对的,他们的区别主要就在于是否阻塞DML操作和扫描数据的不同。
由于REBUILD的时候为了维护索引本身,会阻塞DML操作,
在DML操作频繁的OLTP系统中经常用rebuild online会比较合适

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/66233/viewspace-998247/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle 9 aq
下一篇: 物化视图
请登录后发表评论 登录
全部评论

注册时间:2011-02-24

  • 博文量
    70
  • 访问量
    246752