Oracle veritabanı içerisinde drop edilen objelerin tutulduğu
bir recycle bin(çöplük) bulunur. Bu özellik Oracle 10g ile birlikte gelmiştir.
Drop edilen objeler recycle bin’e gönderilirler ve buradan tekrar restore(geri
döndürülebilinirler).
Recyclebin en başta Enabled(aktive edilmiş) olarak gelir. Eğer disabled(kapatmak) etmek isterseniz:
alter system set recyclebin=Off;
Session bazlı olarak açmak istersek ise:
Alter session set recyclebin=on;
Recycle bin içeriğini görmek için ise :
Show recyclebin;
Şimdi belirteceğimiz recycle bin data dictionary de
user_recyclebin synonym(eş anlamlısı) olarak gözükmektedir.Recycle bin
içeriğini tamamen silmek için :
Purge recyclebin;
DBA’in recycle bin’i diğerlerinden farklı bir yerde durduğu
için, dba recycle bin’ini farklı bir
sorgu ile temizlemek zorundayız.
Purge dba_recyclebin;
Tabloların direk recycle bin’e gitmeden veritabanından
tamamen silinmesini istiyorsak:
drop table deneme purge;
Drop edilen tablolar Oracle 11g de gelen bir özellikle drop
edilmeden önceki haline geri döndürülebilinirler. Drop edilen tabloların tekrar
geri getirilmesi dair bir örnek vermemiz gerekirse :
Create table deneme (x int);
İnsert into x values(9);
Drop table deneme;
Show recyclebin;
Select * from "BIN$HGnc55/7rRPgQPeM/qQoRw==$0" ;
-- burada ise recycle bin içerisini görüntülediğimizde çıkan tablomuzun
veritabanı tarafından tekrar isimlendirildiği şeklini sorgulamaktayız. Recycle
bin’den temizlemek çok önemlidir; çünkü bir tablo drop edildiğinde sadece ismi
değiştirilir, içindeki data, veritabanındaki segmentleri değişmeden kalırlar.
Bu yüzden yer kaplamaya devam ederler. Drop edilen tablolar kendileriyle birlikte bağlı oldukları objeleri de beraberlerinde götürürüler. Index'lerin direk silinmesi için "purge index indeks_adı;" sorgusu çalıştırılabilinir.
Flashback table deneme to before drop;
Hiç yorum yok:
Yorum Gönder