千家信息网

数据库中怎么清除创建失败的索引

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了数据库中怎么清除创建失败的索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在创建一张大表的索引时,因为没有加并行而
千家信息网最后更新 2025年11月07日数据库中怎么清除创建失败的索引

这篇文章主要介绍了数据库中怎么清除创建失败的索引,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在创建一张大表的索引时,因为没有加并行而导致创建时间很长,这时候如果终止操作,比如直接关闭终端,然后再次登录创建时就会报错ORA-00095提示对象名字已被用,而去删除对象时又报错ORA-08104索引正在被创建。

SQL> drop index xxx.BM_IX;drop index xxx.BM_IX                *ERROR at line 1:ORA-08104: this index object 1443829 is being online built or rebuiltSQL> select object_id from dba_objects where object_name='BM_IX'; OBJECT_ID----------   1443829$ oerr ora 0810408104, 00000, "this index object %s is being online built or rebuilt"// *Cause:  the index is being created or rebuild or waited for recovering //          from the online (re)build // *Action: wait the online index build or recovery to complete

从oerr工具看到的ORA-08104的解释是索引并没有创建失败,而是在终端关闭之后,创建的操作还在继续进行。创建或者重建索引时,系统会创建一个临时日志表,这张表被用于存放创建或者重建索引期间产生的日志信息,同时在基表IND$中这个索引的FLAG字段上会被设置为BUILD或者REBUILD标识,当索引信息变更时会把变更信息存入日志表。如果索引创建或者重建失败,这个日志表和数据字典中的状态位都需要后台进程smon进行清理。

因此这里的索引不能被删除是因为后台进程smon还没来得及清理相应的临时段和标志位,认为online rebuild操作还在进行。

那么现在如何终止rebuild index这一操作?查找metalink得到一篇文档:ORA-600 [12813] When Dropping A Table Partition After a Failed IndexRebuild (文档 ID 803008.1)。它给出了两种方法:

1)使用包dbms_repair包来清理

如果在出现问题的对象的数据库活动能停下来,则直接简单地执行如下语句即可:

connect / as sysdbaselect dbms_repair.online_index_clean() from dual; exit

2)使用PL/SQL block调用dbms_repair包来清理

如果在出现问题的对象的数据库活动不能停下来,则如下的PL/SQL block来处理

注:加上dbms_repair.lock_wait表示不是立刻清理,需要不断的寻找资源锁,直到抢到为止

declare  isClean boolean;begin  isClean := FALSE;  while isClean=FALSE loopisClean := dbms_repair.online_index_clean(dbms_repair.all_index_id,                                          dbms_repair.lock_wait);dbms_lock.sleep(2);  end loop;  exception when others then   RAISE; end;/

感谢你能够认真阅读完这篇文章,希望小编分享的"数据库中怎么清除创建失败的索引"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

索引 数据 数据库 对象 篇文章 信息 日志 同时 后台 文档 终端 进程 问题 活动 不断 价值 会创 兴趣 再次 名字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 照相换脸软件开发 腾诚软件开发培训 如何管理服务器各种数据 杭州滴滴软件开发有限公司 天道联盟连接不到服务器怎么办 你怎么遵守国家网络安全法 自己可以搭建邮箱服务器吗 垠坤集团的软件开发怎么样 千兆服务器能连接万兆交换机吗 pe系统如何复制数据库 oa系统看不到数据库 网络安全的主要作用 吴忠市违反网络安全法案件 原生安全网络技术 查外文期刊的影响因子的数据库是 山东省煤炭数据库分析 广州停车系统软件开发怎么样 桓台中小企业oa软件开发公司 天津数据库应用基地 小学生上网课网络安全 济南保健品软件开发 服务器 入门 服务器管理没了怎么办 ea 11创建数据库 北京市程序软件开发公司 图形数据库 数据储存方式 有关酒店网络安全的ppt 塔式服务器电源可以修复吗 服务器和显示器属于哪种辐射 服务器操作系统的管理维护
0