30 Mart 2018 Cuma
Flashback Data Archive ya da diger adiyla Total Recall teknolojisi Oracle 11g ile birlikte gelmistir.
Flashback Data Archive kritik tablolarda yapilan DML islemlerini tablespace’de saklamamizi saglayan teknolojidir.Peki kritik tablolar üzerinde yapilan DML islemlerini saklamamizin bize sagladigi avantajlaraörnek verecek olursak kullanicilarin hatali DML islemleri yaptiginda hatali DML islemini görüp düzeltebiliriz,kritik tablolar üzerinde bir nevi loglama yaparak kritik verilerimizi korumak,geçmise yönelik raporlamayla degisikliklerin takip edilmesi vs..
Denilebilir ki UNDO tablespace’lede eski verilere ulasabilirim niye Flashback Data Archive kullanip bir tablespace olusturup isimi daha da uzatayim. Dogrudur da eger kritik tablolar üzerinde kisa zamanli DML islemlerini görmemiz bizim için yeterli ise flashback version query’i kullanip DML islemlerini görebiliriz ama flashback version query UNDO tablespace’i kullandigi için ancak UNDO tablespace’in büyüklügü kadar geriye gidip yapilan DML islemlerini görebiliriz bunun da uzun bir zaman oldugunu sanmiyorum(UNDO tablespace’in büyüklügünü undo_retention parametresinden görebiliriz).Denilebilir ki burada UNDO tablespace’i büyütebilirim ama UNDO tablespace’in esas görevi degistirilen verileri geçmise yönelik saklamak degildir.
Flashback Data Archive’de undo bilgilerini kullanarak çalismaktadir. Diyebilirsiniz ki o zaman flashback version query ile flashback data archive arasindaki fark nedir.Flashback Data Archive ile Undo tablespace’in limitleri ayni degildir. Undo tablespace’in boyutu undo_retention parametresi ile sinirlayici niteliktedir(flashback database hariç, onun ayri bir log’u var). Flashback Data Archive ‘da böyle bir durum söz konusu degildir. Flashback Data Archive yalnizca undo verilerini kullanir ve bir tablo eger Flashback Data Archive için seçilmis ve tanimlanmis ise o tabloya ait bütün undo verileri archival için isaretlenir ve tablespace’e alinir(Flashback Data Archive’in tutarli olmasi için archival isaretlenmis veriler tablespace’e alinana kadar ezilmez).Bu islemleri yerine getiren arka plan görevinin adi da FBDA’dir.
Simdi bir örnek yapalim ;
1.Uzerinde yapilacak bütün degisiklikleri kaydedecegimiz fda_table_deneme adinda bir tablo olusturalim ve birkaç sütün ekleyelim.
1 2 3 4 5 6 |
|
2.Tablomuzda yaptigimiz bütün degisikliklerin kaydedilecegi tablespace ve tabiki içinde de bir datafile olusturalim.
1 2 3 4 5 |
|
3. Flashback Data Archive için daha önceden olusturdugumuz tablespace’i kullanarak arsiv dosyalarini olusturalim burada ki QUOTA ile arsivimizin boyutuna sinir koyabiliriz,RETENTION parametresi ile de ne kadar eski degisikliklerin saklanabilecegini belirtiriz.
1 2 3 |
|
4.Uzerinde yapilan degisiklikleri kaydedecegimiz tablomuzu belirleyip tanitiriz.
1 |
|
5. Denemeler yapmak için tablomuzda birtakim DML islemleri gerçeklestirelim .
1 2 3 4 5 6 7 8 9 10 |
|
6.Tablomuzun son durumuna baktigimizda 4 tane veri görebiliriz.
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 2 3 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
NOT : Flashback data archive ile ilgili bilgiler asagidaki viewlerden ulasabiliriz.
NOT : Flashback transaction query ile sorgu çektigimizde undo_sql kolonu null gelirse,asagidaki gibi log miner’i aktif yapmaliyiz çünkü flashback data archive arka planda log miner aracini kullaniyor.Bu yüzden supplemental_log_data_min parametresi YES modda olmalidir.
1 |
|
1 |
|
1 |
|
NOT : Flashback data archive kullandigimizda hangi tablonun arsivini alacaksak onun schemasinda 3 tane tablo olusturuyor oracle ve flashback data archive ile ilgili bilgiler sakliyor burda. Flashback data archive’i ise kaldirdigimiz zaman tablolardan ikisi otomatikmen siliniyor bir tanesi kaliyor.(sys_fba_ddl_colmap_73528,sys_fba_hist_73528,sys_fba_tcrv_73528)
Yazar : Mustafa Bektas Tepe
Oracle World
Kaynaklar ;
www.taliphakanozturk.wordpress.com
www.oganozdogan.com
www.dbataj.blogspot.com