oracle建索引卡住,oracle在线创建索引中断问题的解决

进行在线创建索引操作时会话中断,索引处于中间状态。这时尝试删除、重建或rename该索引时,出现如下报错:

ora-08104:该索引对象216832正在被连接建立或重建

一般可以等SMON后台进程进行自动清理。也可以使用DBMS_REPAIR.ONLINE_INDEX_CLEAN进行手工清理。

语法:

DBMS_REPAIR.ONLINE_INDEX_CLEAN (

object_id      IN BINARY_INTEGER DEFAULT ALL_INDEX_ID,

wait_for_lock  IN BINARY_INTEGER DEFAULT LOCK_WAIT)

RETURN BOOLEAN;

如果清理成功,返回TRUE;如果存在未清理成功的对象,则返回FALSE

wait_for_lock:

This parameter specifies whether to try getting DML locks on underlying table [[sub]partition] object. The default retries up to an internal retry limit, after which the lock get will give up. If LOCK_NOWAIT is specified, then the lock get does not retry.

简单调用:

SQL> conn / as sysdba

SQL> DECLARE

isClean BOOLEAN;

BEGIN

isClean := DBMS_REPAIR.ONLINE_INDEX_CLEAN();

END;

/

实际遇到的问题等了四十多分钟后自动清理的。查了一下SMON进程的trace文件,没有记录相关信息。

参考:

How to Cleanup and Rebuild an Interrupted Online Index Rebuild - ORA-8104 , ORA-8106 (Doc ID 272735.1)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值