Temmuz 28, 2010

Oracle FlashBack - Silinen Tabloyu Geri Getirmek

Oracle da silinen nesneler DBA_RECYCLEBIN ve USER_RECYCLEBIN tablolarında tutulur. Eğer sildiğimiz nesneyi OBJECT_NAME alanında görüyorsak silinen veriye ulaşabileceğiz demektir.

  • Select * from "object_name"  yaparak verilerini görebilir,  
  • FLASHBACK TABLE tablo_adi TO BEFORE DROP yaparak tabloyu verileri ile birlikte geri getirebiliriz.
 Eğer tabloyu değilde tablo içindeki bir şekilde silinen verileri getirmek istiyorsak
  • ALTER TABLE tablo_adı  ENABLE ROW MOVEMENT; flashback table tablo_adı to timestamp systimestamp - interval '1'hour;
Bu kod ile tabloyu 1 saat önceki haline getirmiş oluruz.Burada dikkat edilmesi gereken nokta 1 saat içinde girilen veri varsa tabloya o verilerinde kaybolacağıdır.Bu göz önüne alınarak flashback table yapılmalıdır. 

Ancak silinen tablo flashback ile geri getirildiğinde  index, trigger ve kısıtlamalar çöp kutusundaki adları ile gelir. Onları yeniden  isimlendirmemiz gerekmektedir.

Kurtarmak istediğiniz tablo adı eğer veritabanınızda varsa koda rename yeni_tablo_adı ekleyerek geri getirebiliriz;
  • FLASHBACK TABLE tablo_adi TO BEFORE DROP rename to yeni_tablo_adı
Şimdilik Oracle FlashBack için yazacaklarım bu kadar.

Hiç yorum yok:

Yorum Gönder

System.Text.Json.JsonException hatası - cycle or if the object depth is larger than the maximum allowed depth of 32.

 Eğer .net'te aşağıdaki hatayı alıyorsanız; " A possible object cycle was detected which is not supported. This can either be due t...