DBAtlas · Veritabanı operasyon atlası

ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired

Oracle

Ne demek?

Kilitlenmek istenen kaynak (satır ya da tablo) başka bir oturum tarafından kilitli olduğu için, NOWAIT belirtildiğinden veya DDL_LOCK_TIMEOUT süresi dolduğundan hemen alınamadı.

Neden olur?

Genellikle bir DDL (ALTER TABLE, DROP, CREATE INDEX) çalıştırmaya çalışırken tablonun başka bir transaction tarafından kilitli olması; ya da SELECT ... FOR UPDATE NOWAIT kullanımı sırasında satırın kilitli olması.

Nasıl çözülür?

Lock'u tutan oturumu bulun: SELECT * FROM v$locked_object. Engelleyen oturumu tespit için v$session ve v$lock birleştirilebilir. Transaction'ın bitmesini bekleyin veya gerekirse ALTER SYSTEM KILL SESSION ile sonlandırın. DDL için bekleme süresi tanımlayabilirsiniz: ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; Yoğun olmayan bakım pencerelerinde DDL çalıştırın.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar