Oracle 11g Data Guard Broker mimarisinde Fast-Start Failover özelliğinin etkinleştirilmesi

Primary veritabanına olan bağlantı kaybolduğu durumlarda daha önceden seçilen standby veritabanına Data Guard Broker prosesinin otomatik olarak failover işlemini yapması özelliğidir.  Fast-Start Failover özelliği sadece Data Guard Broker yapılandırması içinde kullanılır ve DGMRL komut satırı veyaEnterpriseManager konsolu üzerinden etkinleştirilir.

Hem maksimum erişilebilirlik hemde maksimum performans modunda çalışabilmektedir.Maksimum erişilebilirlik modu seçili olduğunda sıfır veri kaybı garanti edilmektedir.  Maksimum performans modu seçili olduğu durumda ise FastStartFailoverLagLimit konfigürasyon parametresi ile belirlenen saniye içerisindeki veriden daha fazlasının kaybı önlenmiş olmaktadır.

Herhangi bir failover durumunda broker’ın kesintisiz çalışmasını sağlamak için, gözlemciyi primary ve standby veritabanları dışında bir makineye kurmak faydalı olacaktır. Hem Dataguard Broker hemde standby veritabanı, primary veritabanı ile bağlantıyı FastStartFailoverThreshold parametresinde belirlenen süreden daha uzun sürede kaybettiği zaman, broker standby veritabanına doğru fast-start failover işlemini tetikler. Buna ilaveten, eğer FastStartFailoverPmyShutdown parametresi TRUE olarak ayarlanmışsa, FastStartFailoverThresholdparametresindeki süreden daha uzun süreli kesinti durumunda primary veritabanı kapatılır.

Bunun sebebi, redo taşıması ile standby ile primary arasında muhtemel oluşabilecek redo boşluklarının önüne geçmektir. Çünkü oluşabilecek muhtemel redo boşluklarında fast-start failover işlemi en iyimser durumda uzayacak, en kötü durumda işlem başarısız olacak ve standby sunucunu bütünlüğünü kaybederek yeniden oluşturulma ihtiyacı duyacaktır. FastStartFailoverAutoReinstate parametresi TRUE olarak ayarlandığında ise, failover işlemi tamamlandığında eski primary veritabanına bağlantı tekrar sağlandığında eski primary veritabanı standby veritabanı durumuna getirilmiş olacaktır.

Uygun koruma modunun belirlenmesi

Eğermaksimum erişilebilirlik özelliğinin etkin olması isteniyorsa bu durumda standby veritabanının LogXptModeparametresinin SYNC değerini işaret etmesi gerekmektedir. Maksimum performans modunun etkin olması için ise durumda standby veritabanının LogXptMode parametresinin ASYNC değerini işaret etmesi gerekmektedir.

DGMGRL> EDIT DATABASE ’orclprm’ SET PROPERTY LogXptMode=SYNC;

DGMGRL> EDIT DATABASE ’orclstd’ SET PROPERTY LogXptMode=SYNC;

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxAvailability;

Eğer minimal veri kaybından ziyade performans düşünmekteyseniz o zaman maksimum performans modunu etkinleştirmek yeterli gelecektir. Ancak, bu mod etkinleştirmeden önce ne kadar süre içerisindeki veri kaybı kabuledilir miktardır, bunu belirlemeniz gerekmektedir. İşte bu süreyi FastStartFailoverLagLimit parametresi ile düzenleyebilirsiniz.Bu özellik, saniye değeri olarak, primary veritabanından etkieden redo miktarından ne kadar geride gecikme olacaktır, onu belirtmektedir. Bu parametre sadece maksimum performans modunda, yani standby veritabanında ASYNC aktif iken kullanılabilir, varsayılan değer 30 saniyedir. En fazla 10 saniye’ye düşürülebilir.

DGMGRL> EDIT DATABASE ’orclprm’ SET PROPERTY LogXptMode=ASYNC;

DGMGRL> EDIT DATABASE ’orclstd’ SET PROPERTY LogXptMode=ASYNC;

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MaxPerformance;

DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverLagLimit=15; 

Fast-start failover işlemi, hem gözlemci(broker) hemde fiziksel standby sunucu primary sunucuya bağlantısını yitirdiğinde meydana gelir demiştik. İşte, ne kadarlık zaman sonra fast-start failover işlemi devreye girecek onu belirlemek için FastStartFailoverThreshold parametresini saniye değeri olarak ayarlanmalıdır. Bu parametrenin varsayılan değeri 30 saniyedir, en fazla 6 saniye’ye düşürülebilir. Eğer birden fazla düğümlü Oracle RAC veritabanı kullanıyorsanız bu değeri 40 saniyenin üstünde tutmanız tavsiye edilir, çünküOracle RAC instancelerından birisi bir anlık erişilemez olursa, istemedende olsa fast-start failover işlemi hemen devreye girecek ve standby RAC veritabanına failover meydana gelecektir.

DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 45;

Fast-start failover işlemini etkinleştirmek için gözlemci makinede aşağıdaki komut çalıştırılır.

DGMGRL> ENABLE FAST_START FAILOVER;

Enabled. 

DGMGRL> SHOW FAST_START FAILOVER;

Fast-Start Failover: ENABLED
Threshold:           30 seconds
Target:                 orclstd
Observer:            (none)
Lag Limit:           30 seconds
Shutdown Primary:    TRUE
Auto-reinstate:           TRUE

Configurable Failover Conditions
Health Conditions:
Corrupted Controlfile          YES
Corrupted Dictionary           YES
Inaccessible Logfile              NO
Stuck Archiver                      NO
Datafile Offline                    YES
 

Oracle Error Conditions:

(none) 

Bunun yanında sağlık şartları olarak log dosyalarının erişilemez olması veya arşiv dosyalarının primary sunucuda sıkışması sorunlarında otomatik olarak fast-start failover meydana gelmez.Eğerbu özellikleride etkinleştirmek ve fast-start failover işlem alanına dahil etmek için ENABLE FAST_START FAILOVER CONDITION komutu kullanılır.

Bozulmuş kontrol dosyası tespit edildiğinde fast-start failover işleminin otomatik  devreye girmesini etkinleştirmek için;

DGMGRL> ENABLE FAST_START FAILOVER CONDITION “Corrupted Controlfile”; 

ORA-27102  olayı meydana geldiğinde fast-start failover işleminin otomatik  devreye girmesini etkinleştirmek için;

DGMGRL> ENABLE FAST_START FAILOVER CONDITION 27102;

Eğergözlemci makine kullanılıyorsa aşağıdaki komutla observer servisi bu makinede başlatılmalıdır.

DGMGRL> START OBSERVER;