oracle数据库表历史数据占用空间太大,现在进行压缩。压缩后重建分区索引,大部分的表索引都重建成功,有一张大表 重建分区索引运行很久然后就报错,ora—04021等待锁定对象时发生超时。有没有解决的方法
解决办法:
1、查出哪个进程占用了对象
dba_ddl_locks 中查询出SID SERIAL#
2、alter system kill session ' sid,serial#'
3、如果第二步失败:需要到服务器端删除相关的进程(UNIX)或线程(windows)
Select spid, osuser, s.program
From v$session s, v$process p
Where s.paddr = p.addr
And s.sid =(第一步中查出的SID)
4、服务器端(windows):
orakill sid thread(SID是Oracle的实例名,thread是上面查出来的SPID)