3 Nisan 2013 Çarşamba

[TR] BLOCK CHANGE TRACKING

-----------------------------------------
-- BLOCK CHANGE TRACKING ---
-----------------------------------------

-----------------
-- Genel Bilgi --
-----------------

"Block Change Tracking" özelliği; incremental backup stratejisinde, incremental backupları hızlandırmak için kullanılır. Aksi halde incremental yedekleri alınan dbf'ler komple okunur. Block change tracking dosyası binay bir dosyadır ve ister primary ister standby db'lerde aktif hale getirilebilir. Yalnız standby db'lerde kullanılabilmesi için, "Oracle Active Data Guard" lisansının satın alınmış olması gerekir. Varsayılanda
kapalı olarak gelir. Etkisi özellikle çok fazla blok değişikliği olmayan db'lerde daha ciddidir. RMAN komutlarında değişiklik gerektirmez.

bct dosyasında sadece "BACKUP INCREMENTAL ..." komutuyla alınmış yedeklerin bilgisi tutulur. Yani;
INCREMENTAL LEVEL 0
INCREMENTAL LEVEL 1 DIFFERENTIAL
INCREMENTAL LEVEL 1 CUMULATIVE
Diğer yedekler tutulmaz.


bct dosyası sadece en son 8 backup için blok değişikliklerini tutar. Sonraki backup'larda en eskiden başlanmak üzere üzerine yazılır. Yani mesela; 1 adet level 0 backup üzerine 7 adet level 1 differential yedek alınırsa, 8 bitlik kota doldurulmuş olur. Ama bu noktaya kadar, bct dosyasının avantajlarından faydalanılmış olur. Ancak bu noktada, aynı level 0 üzerine bir tane de level 1 cumulative yedek alınmak istenirse, tüm dbf'ler komple okunur. Çünkü bu son backup, bct dosyasında level 0'ın bilgisini ezer. Dolayısıyla incremental backup stratejisinin iyi düşünülmesi gerekir.

Tabi aslında belirtmeye bile gerek. Her INCREMENTAL LEVEL 0 yedek için dbf'ler komple okunur. bct dosyasının faydası, INCREMENTAL LEVEL 1 DIFFERENTIAL ve INCREMENTAL LEVEL 1 CUMULATIVE yedek alınırken görülür.

Her db için yalnızca 1 tane bct dosyası yaratılabilir. RAC'te bct dosyasının, tüm instance'ların görebildiği oratak bir storage üzerinde yaratılması zorunludur. bct dosyasının raw device'lar üzerinde tutulmasını Oracle tavsiye etmez. ASM dg'ları üzerinde tutmak ise mümkündür. RMAN bct dosyasının yedeklenmesini desteklemez. Aslında bct dosyasını yedeklemek yerine yeniden yaratmak her koşulda daha kolaydır. Ayrıca yedeklemenin getirdiği ekstra yönetimsel bir işten de kurtulunmuş olur.

bct dosyası ilk seferinde 10M olarak yaratılır ve her büyümesi gerektiğinde 10M yeni alan alır. bct'nin boyutu; db boyutu ve redo log thread sayısı ile doğru orantılıdır. DB'de zaman içinde gerçekleşen blok değişimleri bct'nin boyutunu etkilemez. Kabaca, 300 GB'lık bir db için bct 10M olur diyebiliriz. Artışta bunların katları şeklinde olur.

---------------------------
-- BCT Özelliğini Açma --
---------------------------

Db OPEN veya MOUNT modda iken;

ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/.../block_change_tracking_file.dbf' [REUSE];

------------------------------
-- BCT Özelliğini Kapatma --
------------------------------

Db OPEN veya MOUNT modda iken; (Dosyayı fiziksel olarakta siler.)

ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;

-----------------------
-- Yerini Değiştirme --
-----------------------

Basitçe; db açıkken, bct özelliği kapatılıp yeni yeri gösterecek şekilde yeniden açılabilir. Ancak bu durumda bct dosyasının tüm içeriği kaybedilmiş olur. Eğer içeriğin kaybedilmemesi bizim için önemliyse, aşağıdaki adımlar uygulanmalıdır; ancak db'nin kapatılıp açılmasını gerektirir.

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE RENAME FILE '/disk1/block_change_tracking_file.dbf' TO '/disk2/block_change_tracking_file.dbf';
ALTER DATABASE OPEN;

-------------
-- Kontrol --
-------------

select * from V$BLOCK_CHANGE_TRACKING;

Hiç yorum yok:

Yorum Gönder