Oracle Flashback Data Archive(Oracle Total Recall)

SELECT versions_xid,versions_starttime,versions_operation,empname,salary FROM emp VERSIONS BETWEEN SCN minvalue AND maxvalue;

SELECT versions_xid,versions_starttime,versions_operation,empname,salary FROM emp VERSIONS BETWEEN
TIMESTAMP TO_TIMESTAMP('2013-06-25 17:30:00', 'YYYY-MM-DD HH24:MI:SS') AND
TO_TIMESTAMP('2013-06-25 18:00:00', 'YYYY-MM-DD HH24:MI:SS');

Flashback Data Archive ya da diğer adıyla Total Recall teknolojisi Oracle 11g ile birlikte gelmiştir.
Flashback Data Archive ya da diğer adıyla Total Recall teknolojisi Oracle 11g ile birlikte gelmiştir.

Flashback Data Archive kritik tablolarda yapılan DML işlemlerini tablespace’de saklamamızı sağlayan teknolojidir.Peki kritik tablolar üzerinde yapılan DML işlemlerini saklamamızın bize sagladığı avantajlara örnek verecek olursak kullanıcıların hatalı DML işlemleri yaptığında hatalı DML işlemini görüp düzeltebiliriz,kritik tablolar üzerinde bir nevi loglama yaparak kritik verilerimizi korumak,geçmişe yönelik raporlamayla değişikliklerin takip edilmesi vs..

Denilebilir ki UNDO tablespace’lede eski verilere ulaşabilirim niye Flashback Data Archive kullanıp bir tablespace oluşturup işimi daha da uzatayim. Doğrudur da eger kritik tablolar üzerinde kısa zamanlı DML işlemlerini görmemiz bizim için yeterli ise flashback version query’i kullanıp DML işlemlerini görebiliriz ama flashback version query UNDO tablespace’i kullandığı için ancak UNDO tablespace’in büyüklüğü kadar geriye gidip yapılan DML işlemlerini görebiliriz bunun da uzun bir zaman olduğunu sanmıyorum(UNDO tablespace’in büyüklüğünü undo_retention parametresinden görebiliriz).Denilebilir ki burada UNDO tablespace’i büyütebilirim ama UNDO tablespace’in esas görevi değiştirilen verileri geçmişe yönelik saklamak değildir.

Flashback Data Archive’de undo bilgilerini kullanarak çalışmaktadir. Diyebilirsiniz ki o zaman flashback version query ile flashback data archive arasındaki fark nedir.Flashback Data Archive ile Undo tablespace’in limitleri aynı değildir. Undo tablespace’in boyutu undo_retention parametresi ile sınırlayıcı niteliktedir(flashback database hariç, onun ayrı bir log’u var). Flashback Data Archive ‘da böyle bir durum söz konusu değildir. Flashback Data Archive yalnızca undo verilerini kullanır ve bir tablo eğer Flashback Data Archive için seçilmiş ve tanımlanmış ise o tabloya ait bütün undo verileri archival için işaretlenir ve tablespace’e alınır(Flashback Data Archive’in tutarlı olması için archival işaretlenmiş veriler tablespace’e alınana kadar ezilmez).Bu işlemleri yerine getiren arka plan görevinin adı da FBDA’dır.

* Tablomuz ile ilgili yaptıgımız işlemlere aşagıda ki gibi bakabiliriz.
SELECT * FROM flashback_transaction_query WHERE table_name=upper(‘fda_table_deneme’);

* Tablomuzun herhangi bir zamandaki halini görebiliriz.
SELECT * FROM fda_table_deneme AS OF timestamp to_timestamp(’07-02-2013 16:45:58′,’DD-MM-YYYY HH24:MI:SS’);

* Tablomuzun istediğimiz bir anında ki haline bakabiliriz.(Ben aşağıda ki örnekle 4 dk önceye bakıyorum)(second,minute,day,month)
SELECT * FROM fda_table_deneme AS OF timestamp(systimestamp-interval’4′ minute);

* Tablomuzda yapılan bütün işlemleri görmek için aşağıda ki sorugu çalıştırabiliriz.
SELECT * FROM fda_table_deneme VERSIONS BETWEEN SCN minvalue AND maxvalue;

* Tablomuzda yapılan değişikliklerin belirli zaman aralıklarında ki listesini almak için aşağıda ki gibi bir sorgu çalıştırabiliriz.
SELECT * FROM fda_table_deneme VERSIONS BETWEEN SCN minvalue AND maxvalue
MINUS
SELECT * FROM fda_table_deneme AS OF timestamp to_timestamp(’07-02-2013 17:49:08′,’DD-MM-YYYY HH24:MI:SS’);

* Flashback data archive içindeki verilere ihtiyacımız kalmadığında aşağıdaki gibi silebiliriz.
ALTER FLASHBACK ARCHIVE fda_flashback_archive PURGE ALL;

* Flashback data archive içinde istediğimiz scn’den önceki bütün verileride aşağıdaki gibi silebiliriz.(ya da istediğimiz scn’den sonraki verileri silebiliriz bu işlemleri zamana göre yapmak da mümkündür)
ALTER FLASHBACK ARCHIVE fda_flashback_archive PURGE BEFORE SCN 155526545;

* Geçmişe yönelik değişen veriyi saklama süresini uzatmak isteyebilirsiniz.
ALTER FLASHBACK ARCHIVE fda_flashback_archive MODIFY RETENTION 3 YEAR;

* Flashback data archive kullanan tablonun archive oluşturmasını engellemek için aşağıdaki sorguyu kullanabiliriz.
ALTER TABLE fda_table_deneme NO FLASHBACK ARCHIVE;

* Flashback data archive arşivini drop etmek için aşağıdaki sorguyu kullanabiliriz.
DROP FLASHBACK ARCHIVE fda_flashback_archive;

* Flashback data archive’ı varsayılan yapmak için aşağıdaki kodu çalıştırabiliriz.
ALTER FLASHBACK ARCHIVE fda_flashback_archive SET DEFAULT;
NOT : Flashback data archive ile ilgili bilgiler aşağıdaki viewlerden ulaşabiliriz.

DBA_FLASHBACK_ARCHIVE : Flashback data archive hakkında bilgi verir.
DBA_FLASHBACK_ARCHIVE_TS : Flashback data archive verilerinin tutulduğu tablespace’ler hakkında bilgi verir.
DBA_FLASHBACK_ARCHIVE_TABLES : Flashback data archive kullanan tablolar hakkında bilgi verir.
NOT : Flashback transaction query ile sorgu çektiğimizde undo_sql kolonu null gelirse,aşağıdaki gibi log miner’i aktif yapmalıyız çünkü flashback data archive arka planda log miner aracını kullanıyor.Bu yüzden supplemental_log_data_min parametresi YES modda olmalıdır.

* supplemental_log_data_min parametresinin statusunu öğrenmek için aşağıdaki sorguyu çalıştırabiliriz.
SELECT supplemental_log_data_min FROM v$database;

* supplemental_log_data_min parametresini YES(açmak) için aşağıdaki sorguyu çalıştırabiliriz.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

* supplemental_log_data_min parametresini NO(kapatmak) için aşağıdaki sorguyu çalıştırabiliriz.
ALTER DATABASE DROP SUPPLEMENTAL LOG DATA;

NOT : Flashback data archive kullandığımızda hangi tablonun arşivini alacaksak onun schemasında 3 tane tablo oluşturuyor oracle ve flashback data archive ile ilgili bilgiler saklıyor burda. Flashback data archive’ı ise kaldırdığımız zaman tablolardan ikisi otomatikmen siliniyor bir tanesi kalıyor.(sys_fba_ddl_colmap_73528,sys_fba_hist_73528,sys_fba_tcrv_73528)

Kaynak : http://www.mustafabektastepe.com

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s


%d blogcu bunu beğendi: