创建索引脚本:
cat /home/oracle/idx.sql
set timing on
alter session set parallel_force_local = true;
alter session set workarea_size_policy=manual;
alter session set sort_area_size=1073741820;
alter session set sort_area_retained_size=1073741820;
alter session set db_file_multiblock_read_count=128;
create index JT_USER.idx_DELETE_STATE on "JT_USER"."RME_OPTIC_TERM"(DELETE_STATE,SUPER_RES_TYPE,OPER_STATUS) parallel 8 nologging;
alter index JT_USER.idx_DELETE_STATE noparallel;
alter index JT_USER.idx_DELETE_STATE logging;
创建索引失败:
SQL> create index JT_USER.idx_DELETE_STATE on "JT_USER"."RME_OPTIC_TERM"(DELETE_STATE,SUPER_RES_TYPE,OPER_STATUS) parallel 8 nologging;
create index JT_USER.idx_DELETE_STATE on "JT_USER"."RME_OPTIC_TERM"(DELETE_STATE,SUPER_RES_TYPE,OPER_STATUS) parallel 8 nologging
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
处理办法:kill掉锁表进程。
查询锁表进程:(不仅适用于表,同样适用于存储过程等对象)
Select c.inst_id,c.spid from gv$process c where c.addr in(select b.paddr from gv$session b where b.sid in(select sid from gv$access where object='RME_OPTIC_TERM'));
直接拼接kill代码:
select 'kill -9 '||c.spid,c.inst_id from gv$process c where c.addr in(select b.paddr from gv$session b where b.sid in(select sid from gv$access where object='RME_OPTIC_TERM'));


一般在10秒内释放进程。

再次创建成功:
SQL> @/home/oracle/idx.sql
Session altered.
Elapsed: 00:00:00.00
Session altered.
Elapsed: 00:00:00.01
Session altered.
Elapsed: 00:00:00.00
Session altered.
Elapsed: 00:00:00.00
Session altered.
Elapsed: 00:00:00.01
Index created.
Elapsed: 00:01:57.45
Index altered.
Elapsed: 00:00:00.13
Index altered.
Elapsed: 00:00:21.89
最后修改时间:2024-04-08 10:25:04
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




