online rebuild index异常终止遇到ORA-08104
create index idx_p_merchant_detail_id on D_ORDER_DETAIL (merchant_detail_id) Online;创建好长时间,没有反映;然后取消,结
create index idx_p_merchant_detail_id on D_ORDER_DETAIL (merchant_detail_id) Online;
创建好长时间,没有反映;然后取消,结果删除索引的时候,报如下的错误:
错误:ORA-08104: this index object 67420 is being online built or rebuilt
通过 ONLINE 参数创建索引(或者重建索引), 如果进程被突然终止,或者是手工 CTRL C 取消该操作,
在非常个别的时候,麻烦来了。重新创建索引,会告诉你该索引已经存在,drop index ,会告诉你该索
引被锁,或者是 ORA-08104(this index object xxxxx is being online built or rebuilt) 错误。
该过程失败之前创建的一些临时对象由 SMON 负责清除,糟糕的是, SMON 可不是那么听话,马上出来清除,
这个清除时间可能会很长,据说在 9i 上观察是 2 个小时才清除掉。
如何解决呢?
在Oracle10g之前,对于这种情况没有太好的办法,只有等SMON进程来进行清理了。网上有说上重启库可以解决,
有说直接update系统表ind$的,对于不能停机的产品库来说,这些都是不可取的方案。重启不现实,修改系统表
更是DBA的大忌。
最好是等系统自动清除,如果因此给你带来的影响让你不得不手动尽早清除的话,那就看你的运气了
如果是Oracle10g,,则可以使用dbms_repair.online_index_clean手工清理(metalink的说法,9i打了Bug 3805539的patch的话也能用该过程了)。
如果是一个比较繁忙的 OLTP 系统, 并且是要维护单列索引,那么风险真的是很大的。在 SMON 清除这些临
时对象之前,没有办法在该列上建立新的索引。服务器能撑住么?
异常终止的情况下,可以发现ind$关于该索引的状态还是online rebuild的:
SQL> select obj#,flags from ind$ where obj#=67420;
OBJ# FLAGS
---------- ----------
67420 514
Flags字段的说明可以在ind$的sql.bsq脚本中找到:
/* mutable flags: anything permanent should go into property */
/* unusable (dls) : 0x01 */
/* analyzed : 0x02 */
/* no logging : 0x04 */
/* index is currently being built : 0x08 */
/* index creation was incomplete : 0x10 */
/* key compression enabled : 0x20 */
/* user-specified stats : 0x40 */
/* secondary index on IOT : 0x80 */
/* index is being online built : 0x100 */
/* index is being online rebuilt : 0x200 */
/* index is disabled : 0x400 */
/* global stats : 0x800 */
/* fake index(internal) : 0x1000 */
/* index on UROWID column(s) : 0x2000 */
/* index with large key : 0x4000 */
/* move partitioned rows in base table : 0x8000 */
/* index usage monitoring enabled : 0x10000 */
514=0×202,表示该索引状态为index is being online rebuilt : 0×200 analyzed : 0×02
在SMON完成清理动作后,再次查询索引状态已经恢复正常:
SQL> select obj#,flags from ind$ where obj#=67420;
OBJ# FLAGS
---------- ----------
67420 2
清理完后,可以在alert.log中看到如下记录:
User:,time:20071209 03:12:09,program:oracle@db1
(SMON),IP:,object:SYS_JOURNAL_67420,DDL: drop table "TAOBAO"."SYS_JOURNAL_67420"

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本文探讨了Docker中的优化MySQL内存使用量。 它讨论了监视技术(Docker统计,性能架构,外部工具)和配置策略。 其中包括Docker内存限制,交换和cgroups

本文介绍了MySQL的“无法打开共享库”错误。 该问题源于MySQL无法找到必要的共享库(.SO/.DLL文件)。解决方案涉及通过系统软件包M验证库安装

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

本文比较使用/不使用PhpMyAdmin的Podman容器直接在Linux上安装MySQL。 它详细介绍了每种方法的安装步骤,强调了Podman在孤立,可移植性和可重复性方面的优势,还

本文提供了SQLite的全面概述,SQLite是一个独立的,无服务器的关系数据库。 它详细介绍了SQLite的优势(简单,可移植性,易用性)和缺点(并发限制,可伸缩性挑战)。 c

本指南展示了使用自制在MacOS上安装和管理多个MySQL版本。 它强调使用自制装置隔离安装,以防止冲突。 本文详细详细介绍了安装,起始/停止服务和最佳PRA

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]
