专栏首页bisal的个人杂货铺索引重建失败的解决

索引重建失败的解决

在Oracle中创建索引,尤其是大的热表索引(存在很多的活动事务),如果在创建过程中出现异常,例如会话中断(OS层面kill-9),可能会导致Oracle数据字典内已经包含了该索引的信息(诸如像在ind$的标记位信息不能及时复位),但是却实际没有为该索引分配段,进而导致需要重新建立索引的时候,可能会抛出异常,如下所示,在删除索引IDX1时,会提示索引对象826976号正在创建或者被重建,无法删除,(在alter table ... drop partition的时候(Drop Partition Failed With ORA-08104: This Index Object Is Being Online Built Or Rebuilt (Doc ID 2358693.1)),可能出现相同的错误),

SQL> drop index IDX1;
drop index IDX1
*
ERROR at line 1:
ORA-08104: this index object 826976 is being online built or rebuilt

此时,可以在sys下执行这个脚本,

SQL> declare
2  done boolean;
3  begin
4  done:=dbms_repair.online_index_clean(826976);
5  end;
6  /
PL/SQL procedure successfully completed.

调用dbms_repair存储过程的online_index_clean函数,参数就是上面的索引对象号,这个函数从Oracle 10.2开始支持,在10.2以前,需要等待SMON自己完成清理的工作,

This function performs a manual cleanup of failed or interrupted online index builds or rebuilds. This action is also performed periodically by SMON, regardless of user-initiated cleanup.

(How to Cleanup and Rebuild an Interrupted Online Index Rebuild - ORA-8104 , ORA-8106 (Doc ID 272735.1)),SMON进程每60秒尝试一次清理,但是在highly active的数据库,存在很多活动的事务,导致SMON无法以NOWAIT获得对象锁,进而需要等待很久的时间,才能完成清理,在此之前,就无法执行索引重建的工作。因此,才需要这个函数,代替SMON,执行手工清理,清除临时信息。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [Oracle]-[recyclebin][索引]-回收站恢复的索引名称修改

    从回收站中恢复表后,索引也会自动恢复,但索引的名称仍是回收站中的26位标识,不会改为原始名字,可以使用alter index修改索引名,但需要注意的是因为标识中...

    bisal
  • 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列1

    高CPU应用不一定就是问题,或者说系统资源正在被充分利用。然而,如果CPU使用持续高,但系统负载低、系统性能差,那么就应该调查下CPU高使用率的原因。特别地,如...

    bisal
  • SYS.AUD$无法扩容导致无法登录的问题

    ERROR: ORA-00604: error occurred at recursive SQL level 1 ORA-01653: unable to...

    bisal
  • react onclick传递参数

    onClick={this.Mallclose.bind(this,e,index)}

    windseek
  • iOS-UIPageViewController实现分页控件

    用户2215591
  • 使用 Nginx 为 Linux 实例绑定多个域名

    Sindsun
  • Nginx的使用

    _ Nginx是一款高性能的http 服务器/反向代理服务器 及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序 设计师Igor Sysoev所开发,官...

    用户5927264
  • 学界 | 中科院开源星际争霸2宏观运营研究数据集MSC

    选自arXiv 机器之心编译 参与:李泽南、蒋思源 DeepMind 与暴雪共同发起的星际争霸 2 人工智能研究看起来遭遇了很大挑战。目前的人工智能还难以在完...

    机器之心
  • Kotlin代码检查在美团的探索与实践

    Kotlin有着诸多的特性,比如空指针安全、方法扩展、支持函数式编程、丰富的语法糖等。这些特性使得Kotlin的代码比Java简洁优雅许多,提高了代码的可读性和...

    美团技术团队
  • Java Web 中使用ffmpeg实现视频转码、视频截图,javaffmpeg

    http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html#!comments

    bear_fish

扫码关注云+社区

领取腾讯云代金券