Pages

28 Mart 2011 Pazartesi

Oracle 11.2 Dataguard ortamında Oracle Restart servisi ile Fast Application Notification(FAN) olayları

Oracle 11g Dataguard mimarisinde FAN(Fast Application Notification) olaylarının Oracle Restart servisi yoluyla etkinleştirilmesi için öncelikle Oracle Restart sunucularını ve entegre istemcilerini içeren Oracle Notification Service(ONS) networkunun oluşturulması gerekmektedir. Bu entegre istemciler Oracle Bağlantı Yöneticisi(CMAN), Java Veritabanı Bağlayıcısı(JDBC) veya Universal Connection Pool(UCP) istemcileri olabilir.  ONS networku ile primary veritabanında meydana gelen bir failover durumunda, FAN olayları DOWN durumunu işaret ederek standby sunuculara Dataguard Broker tarafından yayınlanacaktır. CMAN, JDBC ve UCP ile bağlı olan uygulamalar, Fast Connection Failover(FCF) özelliği kullanılarak, failover durumundan etkilenmeden otomatik olarak yeni primary veritabanına bağlantı açarlar.

Oracle Restart primary veritabanını izleyerek DOWN olayı meydana geldiğinde istemcilere, bu düşen veritabanı ile bağlantılarını sonlandırması için FAN duyurusu yapar ve UP olayı meydana geldiğindede yeni bir FAN duyurusu ile yeni primary rolüne bürünenen eski standby veritabanı üzerinden yeni bağlantılar açılır.

Oracle 11g Dataguard platformunda, Oracle Restart servisinin etkinleştirilerek ASM, listener ve servislerin otomatik olarak başlatılması için gereken yapılandırma ile birlikte FAN olaylarının Oracle Restart içerisinde kayıt edilmesi adımları aşağıda yer almaktadır. Senaryoda Oracle Restart özelliği Dataguard yapılandırmasından sonra etkinleştirilmiştir.

  1. Primary ve standby sunucularda Oracle DataGuard Broker kurulduğundan emin olun. Oracle DataGuard kurulumu ile ilgili yazımı inceleyebilirsiniz.
  2. Hem primary hem standby sunucularda root hesabından oturum açarak,Oracle Restart özelliği etkinleştiriliyor. Böylece sunucunun her açılışında açılışı sağlayacak olan Oracle High Availability Servisi, namı diğer “Oracle Restart” otomatik başlamaya ayarlanmış oluyor.
# crsctl enable has
CRS-4622 Oracle High Availability Services autostart is enabled.

  1. Primary sunucu üzerinde, ilgili primary veritabanı Oracle Restart konfigürasyonuna eklenmelidir. Ardından, bu primary sunucu üzerindeki Oracle Restart konfigürasyonuna varsa ASM instance ve listenerda eklenmelidir.
$ srvctl add database -d orcldg –r primary -o /u01/app/oracle/product/11.2.0/db_1 à DB_UNIQUE_NAME=orcldg olan ve –o ile belirtilen db_home dizininde primary rolünde olan veritabanı Oracle Local Registry(OLR) içine ekleniyor

$  srvctl add asm à ASM instance Oracle Restart içine ekleniyor
$  srvctl add listener -o /u01/app/oracle/product/11.2.0/db_1 à Varsayılan listener Oracle Restart içine ekleniyor

  1. Standby sunucu üzerinde, ilgili standby veritabanı Oracle Restart konfigürasyonuna eklenmelidir. Ardından, bu standby sunucu üzerindeki Oracle Restart konfigürasyonuna varsa ASM instance ve listenerda eklenmelidir.
$ srvctl add database -d orcldg –r physical_standby -o /u01/app/oracle/product/11.2.0/db_1 à DB_UNIQUE_NAME=orcldg olan ve –o ile belirtilen db_home dizinindeki standby rolünde olan veritabanı Oracle Local Registry(OLR) içine ekleniyor

$  srvctl add asm à ASM instance Oracle Restart içine ekleniyor
$  srvctl add listener -o /u01/app/oracle/product/11.2.0/db_1 à Varsayılan listener Oracle Restart içine ekleniyor

  1. Oracle Notification Service(ONS) konfigürasyon içerisine ekleniyor, böylece FAN olayları etkinleştiriliyor ve başlatılıyor. Hem primary hemde standby sunucuda teker teker çalışıtırlacak.
$  srvctl add ons
$  srvctl enable ons
$  srvctl start ons

  1. Primary sunucuda “primary” adlı bir servis ekleniyor ve bu servis primary veritabanı rolünü işaret ediyor. OCI ve ODP.NET uygulama bağlantıları için,primary veritabaınında herhangi bir failover durumunda FCF(Fast Connection Failover) servisi ile  yeni primary rolündeki veritabanına hızlı ve kesintisiz bağlantı aktarımı sağlanıyor. oracle.jdbc.FastConnectionFailover =true  parametresi ile JDBC istemciler için data kaynak kodunda değişiklik yapmadan FAN olayı otomatikman etkinleştirilir.Bağlantı yük dengelemesini ise LONG seçiyorum.
$  srvctl add service -d orcldg  -s primary  -l primary  -q true -e select -m basic -D oracle.jdbc.FastConnectionFailover=true  -j long  

Failover tipi(-e) SELECT, failover metodu(-m) BASIC seçiyorum. Failover durumunda TAF’ın yeniden bağlantı denemesi(-w) 10 kez, yeniden bağlantı denemesi arasında bekleme süresini(-w) 1 saniye olarak belirliyorum.

$ srvctl modify service -s primary -z 10 -w 1

  1. Standby sunucuda orcldg adlı veritabanında “standby” adlı bir servis ekleniyor ve bu servis fiziksel standby veritabanı rolünü işaret ediyor ve -l parametresi ile servisin rolünün fiziksel standby olduğunu belirtiyoruz. Herhangi bir failover olduğunda bu servis primary rolüne otomatikman bürünecektir. OCI ve ODP.NET uygulama bağlantıları için,standby veritabaınında herhangi bir failover durumunda FCF(Fast Connection Failover) servisi ile  yeni primary rolündeki veritabanına hızlı ve kesintisiz bağlantı aktarımı sağlanıyor. oracle.jdbc.FastConnectionFailover =true  parametresi ile JDBC istemciler için data kaynak kodunda değişiklik yapmadan FAN olayı otomatikman etkinleştirilir. Bağlantı yük dengelemesini ise LONG seçiyorum.
$  srvctl add service -d orcldg -s standby -l physical_standby -q true -e select -m basic -D oracle.jdbc.FastConnectionFailover=true -j long

Failover tipi(-e) SELECT, failover metodu(-m) BASIC seçiyorum. Failover durumunda TAF’ın yeniden bağlantı denemesi(-w) 10 kez, yeniden bağlantı denemesi arasında bekleme süresini(-w) 1 saniye olarak belirliyorum.

$ srvctl modify service -s standby -z 10 -w 1

  1. Oracle Restart servisi hem primary hemde standby sunucuda root hesabıyla başlatılıyor.
# crsctl start has

  1. Yapılandırmadan sonra primary dataguard servisi ilk sefer başlatılacağından dolayı, hem primary hemde standby sunucularda manuel başlatma yapıyoruz ve yeni servisin durumunu kontrol ediyoruz.
$ srvctl start service -d orcldg -s primary
$ srvctl config service -d orcldg -s primary
Service name: primary
Service is enabled
Cardinality: SINGLETON
Disconnect: false
Service role: PRIMARY
Management policy: AUTOMATIC
DTP transaction: false
AQ HA notifications: false
Failover type: SELECT
Failover method: BASIC
TAF failover retries: 10
TAF failover delay: 1
Connection Load Balancing Goal: LONG
Runtime Load Balancing Goal: NONE
TAF policy specification: NONE

0 yorum:

Yorum Gönder