ORA-01555: Snapshot too old: rollback segment number too small
OracleNe demek?
Uzun süren bir sorgu, başladığı andaki tutarlı görüntüyü (read consistency) oluşturmak için gereken eski undo verisine erişemedi; çünkü o undo bilgisi üzerine yazılmış.
Neden olur?
Undo tablespace'inin küçük olması, UNDO_RETENTION süresinin kısa olması, aynı anda çok yoğun DML çalışırken uzun süren sorgular olması veya bir sorgu içinde aynı tabloya commit yapan bir döngü (fetch across commit) bulunması.
Nasıl çözülür?
UNDO_RETENTION değerini artırın ve undo tablespace'ini büyütün, mümkünse otomatik yönetimde bırakın (AUTOEXTEND açık). Uzun sorguları küçük parçalara bölün veya yoğun olmayan zamanda çalıştırın. RETENTION GUARANTEE ayarını değerlendirin: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE. Döngü içinde commit eden uygulama mantığını düzeltin.
Aynı motorda diğer kayıtlar
- ORA-00054Resource busy and acquire with NOWAIT specified or timeout expired
- ORA-00060Deadlock detected while waiting for resource
- ORA-01017Invalid username/password; logon denied
- ORA-01652Unable to extend temp segment by N in tablespace
- ORA-04031Unable to allocate N bytes of shared memory
- ORA-12154TNS: could not resolve the connect identifier specified
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor