Forum
Merhaba...
Sürekli işlem gören bir tablo mevcut. Örneğin iki saat öncesine flashback yaptığımda ORA-01555: snapshot too old hatasını alıyorum. Bunu saat yada gün bazında uzatma yolu varmıdır.
Teşekkürler
Merhaba,
Aşağıdaki yazıda çözümü mevcut.
http://uguroracle.blogspot.com/2010/12/ora-01555-snapshot-too-old-hatasnn.html
teşekkürederim
Merhaba...
Sürekli işlem gören bir tablo mevcut. Örneğin iki saat öncesine flashback yaptığımda ORA-01555: snapshot too old hatasını alıyorum. Bunu saat yada gün bazında uzatma yolu varmıdır.
Teşekkürler
Merhaba,
Uğur beyin cevabına ek olarak şunları belirtmek istiyorum.Öncelikle bu tür sorun kullanıcılar için de detaylı bir cevap olacağını umuyorum.
ORA-01555 hataları genellikle Oracle read consistency mekanizması sebebiyle bu tür hatalar ortaya çıkmaktadır.
Burada oracle çalışma mekanizması mantığı olarak şunu yapmaktadır.Öncelikle online undo segmentleri tarafından değiştirilmiş tüm satırların
okunarak bu işlemin yapılması temeline dayanıyor.Yani,bir çok update varsa,çok uzun çalışan SQL ve de çok ufak UNDO varsa,ORA-01555 türünden hatalar alınır.
Oracle dokümanlarından da görebileceğiniz gibi ORA-01555 hatası çoğunlukla geriye dönüşün (UNDO) yeterli olmayan storage ve ya undo_parameter için
çok ufak değerlerin girilmiş olmasından dolayı kaynaklanmaktadır.
Burada sizin almış olduğunuz için:rollback segment sayısının çok ufak "string" isimli değerlere sahip olmasındandır.
Burada sizin yapmanız gereken aksiyon şöyle olması gerekiyor.
1-Eğer Automatic Undo Management moddaysanız,UNDO_RETENTION ayarını arttırmanız gerekmektedir.Bununla birlikte çok büyük rollback segmentlerin
kullanılması gerekmektedir.
2-Eğer UNDO_RETENTION değerlein arttırılmasına rağmen yine de aynı hatayı alıyorsanız aşağıdaki RETENTION GUARANTEE seçenekli undo tablespace
oluşturmanız gerekiyor.
CREATE UNDO TABLEAPCE undo_tbs
DATAFIEL ‘/u02/oradata/grid/undo_tbs01.dbf’ SIZE 1 G
RETENTION GUARANTEE;
Yukarıdaki sebeplerin dışındada daha bir sürü etken nedeniyle de bu sorun ortaya çıkmaktadır.
Bunlar;
*DML yük seviyesi sistemde alt seviyelerde bulunurken çok uzun sürede çalışan sorguların re-schedule edilmiş olması
*Rollback segment (undo) size değerinin arttırlması
*Yapılan commitler arasında fetch yapmayınız.
Saygılarımla,