Forum

ORA-01555 Flashback...
 
Bildirimler
Hepsini Temizle

ORA-01555 Flashback Recovery?

4 Yazılar
3 Üyeler
0 Likes
449 Görüntüleme
(@gunerigunes)
Gönderiler: 55
Trusted Member
Konu başlatıcı
 

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 

 
Gönderildi : 12/01/2012 13:41

(@ugurinal)
Gönderiler: 145
Estimable Member
 

Merhaba,

Aşağıdaki yazıda çözümü mevcut. 

http://uguroracle.blogspot.com/2010/12/ora-01555-snapshot-too-old-hatasnn.html

 
Gönderildi : 12/01/2012 15:45

(@gunerigunes)
Gönderiler: 55
Trusted Member
Konu başlatıcı
 

teşekkürederim

 
Gönderildi : 12/01/2012 17:16

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

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,

 
Gönderildi : 13/01/2012 13:49

Paylaş: