ORACLE RAC MİMARİSİ

Oracle Real Application Cluster (RAC) Oracle ın bir database seçeneğidir. Oracle Rac Cluster birden çok sunucuyu tek bir sistem olarak çalıştırır.

oracle rac s-1

Şekil 1-1

Oracle RAC mimarisi, tüm RAC nodlarının veritabanı iş yüklerini paylaşmasına izin vererek ölçeklenebilirliği sağlamak için tasarlanmıştır. Böylece Oracle RAC Veritabanı, kullanıcılara, çoklu RAC nodlarından oluşan CPU ve bellek gibi bilgi işlem kaynaklarını gruplandıran bir mantıksal veritabanı sunucusu sunar. Çoğu zaman, servisler, Tek İstemci Erişim Adı (SCAN) ve veritabanı istemci yük devretme özellikleri gibi RAC özelliklerini kullanarak uygun yapılandırma ile, node ekleme veya çıkarma gibi cluster konfigürasyonundaki değişiklikler, kullanıcılara mümkün olduğunca şeffaf bir şekilde yapılabilir. Şekil 1-1, kullanıcıların veritabanına bağlandığı ve üç instance üzerinden veritabanı işlemleri yapabileceği bir Oracle RAC yapılandırmasını göstermektedir.

Bu mimari ayrıca cluster daki bir hata sırasında Yüksek erişilebilirlik (HA) sağlar N toplam düğüm sayısı ise N-1 düğüm hatasını tolere edebilir ve RAC düğümlerinin arasında yük dengelenmesini sağlar.

Oracle 12cR1 de Flex Clusters adında yeni bir mimari seçeneği tanıttı.  Bu mimarida iki tür cluster nodes yapısı vardır. Bunlar Hub Nodes ve Leaf Nodes. Hub Nodes geleneksel olan 11gr2 deki cluster nodes yapısı ile aynıdır, tüm hub nodları yüksek hızlı ağ ile birbirlerine ve paylaşılan depolama alanına bağlıdır ve doğrudan erişim yetkisi vardır. Leaf Nodes mimarisinde ise Leaf Nodes lar sadece ilgili Hub nodlarına bağlıdır ve paylaşılan depolama alanında doğrudan erişimi olması gerekmez. Bunun yerine ekledikleri Hub Nodları aracılığı ile I/O işlemlerini gerçekleştiriler. (Flex Cluster Mimarisi ayrıca ele alınacaktır).

RAC İÇİN DONANIM GEREKSİNİMLERİ

Tipik bir Oracle RAC veritabanı, iki veya daha fazla sunucu, sunucular arasında ağ oluşturma ve sunucular tarafından paylaşılan depolama alanı gerektirir. RAC kümesindeki tüm sunucuların, CPU sayıları, toplam bellek ve fiziksel ağlar gibi benzer (homojen) kapasite konfigürasyonlarına sahip oldukları varsayılmaktadır. Sunucular kapasitede farklıysa, bu, RAC’de kaynak dağıtımını ve oturum yük dengelemesini etkileyecektir. RAC veritabanı dosyalarının bulunduğu depolamanın tüm RAC düğümlerinden erişilebilir olması gerekir. Oracle Clusterware ayrıca, iki önemli cluster bileşeni bileşenini (Oracle Cluster Registry (OCR) ve voting disk files) paylaşılan depoda saklar. RAC nodlarının her biri tarafından paylaşılan depolama alanına erişilebilirliği, cluster yazılımı ve RAC Veritabanları için kritik öneme sahiptir. Depolama bağlantılarının hata toleransını sağlamak için, sunucular ve paylaşılan depolama arasında yedekli ağ bağlantılarının kurulması önemle tavsiye edilir.

oracle rac s 1-2

Şekil 1-2

Bir Oracle RAC yapılandırması için ağ yapılandırması, kullanıcılara yönelik genel ağ veya veritabanına bağlanma uygulamaları ve kümedeki RAC düğümlerini bağlamak için özel ara bağlantı ağını içerir. Şekil 1-2, iki düğümlü bir RAC veritabanındaki bu iki ağı göstermektedir. Private interconnect ağına yalnızca clusterdaki nodlar erişilebilir. Bu private interconnect ağı, kümedeki RAC düğümleri arasında en önemli iletişimi sağlar. Ağ, RAC örnekleri arasındaki veri bloğu aktarımı tarafından da kullanılır.

 Private network ara bağlantı ağı için ayrılmış iki fiziksel switch e bağlanan en az iki Network kartını (NIC) içermelidir. Bu iki anahtar, public network te dahil olmak üzere başka herhangi bir ağa bağlanmamalıdır. Fiziksel ağ kartları, Linux Bonding veya HA için Microsoft NIC Teaming ve yük dengeleme gibi işletim sistemi ağ bağlantısı yardımcı programları kullanılarak tek bir mantıksal ağa bağlanabilir.

Oracle RAC veritabanının ölçeklenebilirliğini artırmak için, bazı gelişmiş ağ çözümleri tanıtıldı. Örneğin, alternatif olarak, 10g GbE ağı ve InfiniBand ağı, potansiyel aradaki darboğazın azaltılması için özel ara bağlantı için yaygın olarak kullanılmaktadır.

RAC BİLEŞENLERİ

Bir Oracle RAC altyapısı kurmak için, aşağıdaki iki Oracle lisanslı ürünü yüklemeniz gerekir

Oracle Grid Altyapısı: Bu, Oracle Clusterware ve Oracle ASM’yi birleştirir. Oracle • Cluster yazılımı birbirine bağlı birden fazla sunucu (node) kümelendirir. Oracle ASM, tüm cluster nodları tarafından paylaşılan disk alanını sağlar.

Oracle RAC: Aynı veritabanına erişmek ve aynı veritabanında işlem yapmak için birden fazla veritabanı instance yi koordine eder ve senkronize eder.

 

oracle rac s-1-3

Şekil 1-3

Grid Infrastructure: Oracle Clusterware ve ASM

Cluster yazılımı, bir dizi sunucudaki RAC veritabanlarına Clusterware özellikleri sağlamak için işletim sistemine sıkı sıkıya bağlı bir yazılım katmanıdır. Oracle 9i’den önce, Oracle, Clusterware çözümünü sağlamak için OS satıcılarına veya üçüncü taraf satıcılarına bağlıydı. Oracle 9i’de, Oracle kendi küme yazılımlarını Linux ve Windows’da yayınladı ve Oracle 10g Oracle, cluster yazılımını diğer işletim sistemlerine genişletti. Oracle Clusterware 11g’de önemli ölçüde artmıştır. 11gR2’de, Oracle, Clusterware ve Oracle ASM’yi Grid Infrastructure adlı tek bir ürünle birleştirdi. Oracle Clusterware, Oracle RAC seçeneğini çalıştırmak için gerekli bir yazılımdır ve kendi başına, paylaşılmamış Oracle yüklenmiş olmalıdır. Genelde, Grid Altyapısı’nın yanı sıra Oracle RAC veritabanı sahibi “oracle” den farklı olan Oracle ASM örneğine sahip özel bir işletim sistemi kullanıcısı “grid” userı kullanılır.

Oracle Clusterware, Oracle RAC Veritabanı için bir temel bir görevi görür. Her cluster sunucusunda (node) çalışan ve cluster düğümlerinin birbiriyle iletişim kurmasını sağlayan bir dizi ek işlem kümesi sağlar; böylece bu cluster nodları, veritabanı kullanıcılarına hizmet veren bir sunucu gibi çalışabilir. Bu altyapı Oracle RAC’yi çalıştırmak için gereklidir.

Grid Infrastructure yüklenmesi (install) sırasında, ASM Instance, database services ve virtual IP (VIP) services, Single Client Access Name (SCAN), SCAN listener, Oracle Notification Service (ONS) ve Oracle Net Listener, Oracle Cluster yazılımı olarak yapılandırılır ve kaydedilir. Ardından, bir RAC veritabanı oluşturlur, veritabanı Oracle Cluster Yazılımı ile  kaydedilir ve yönetilir. Oracle Clusterware, Cluster yazılımı bir kez başlatıldıktan sonra veritabanının başlatılmasından sorumludur.

Oracle Clusterware ayrıca RAC veritabanları, ASM instance ları, veritabanı servisleri, listenerlar, VIP adresleri, ASM disk grupları ve application process leri gibi yönettiği kaynakların yapılandırmasını ve durumunu izler. Bunlar Cluster Raedy Service (CRS) kaynakları olarak bilinir. Oracle Clusterware, bu kaynakların durumunu periyodik aralıklarla kontrol eder ve başarısız olursa, sabit sayıda tekrar eder (kaynağın türüne bağlı olarak).

Bu kaynakların durumunu kontrol etmek için aşağıdaki crsctl komutunu kullanabilirsiniz:

[[email protected] ssmdbdbadm01 ~]$ crsctl stat res –t –
Veya  ([[email protected] oracle]# cat profile_crs
export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/12.1.0.2 /grid
export PATH=$ORACLE_HOME/bin:$PATH) ile

[[email protected] oracle]# crsctl stat res -t
——————————————————————————–
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
——————————————————————————–
Local Resources
——————————————————————————–
ora.DATAC1.dg
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
ora.DBFS_DG.dg
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
ora.LISTENER.lsnr
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
ora.RECOC1.dg
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
ora.asm
ONLINE  ONLINE       ssmdbdbadm01             Started
ONLINE  ONLINE       ssmdbdbadm02             Started
ora.gsd
OFFLINE OFFLINE      ssmdbdbadm01
OFFLINE OFFLINE      ssmdbdbadm02
ora.net1.network
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
ora.ons
ONLINE  ONLINE       ssmdbdbadm01
ONLINE  ONLINE       ssmdbdbadm02
——————————————————————————–
Cluster Resources
——————————————————————————–
ora.LISTENER_SCAN1.lsnr
1        ONLINE  ONLINE       ssmdbdbadm01
ora.cvu
1        ONLINE  ONLINE       ssmdbdbadm02
ora.dbm01.db
1        ONLINE  ONLINE       ssmdbdbadm01             Open
2        ONLINE  ONLINE       ssmdbdbadm02             Open
ora.oc4j
1        ONLINE  ONLINE       ssmdbdbadm02
ora.scan1.vip
1        ONLINE  ONLINE       ssmdbdbadm01
ora.ssmdbdbadm01.vip
1        ONLINE  ONLINE       ssmdbdbadm01
ora.ssmdbdbadm02.vip
1        ONLINE  ONLINE       ssmdbdbadm02

Rac kaynaklarını yönetmek için SVRCTL komutu kullanılabilir.

[[email protected] oracle]#  srvctl status database -d khdb

Instance dbm011 is running on node ssmdbdbadm01

Instance dbm012 is running on node ssmdbdbadm02

Oracle RAC: Cache Fusion

 RAC Database instance için bir server process bir data bloğunubuffer cache den okursa bu buffer cache bu instancenin localinde olabildiği gibi uzak bir instance den geliyor olabilir. Eğer uzak bir instance den bu veri geliyor ise bu data bloğunun yükse hızlı bir bağlantıdan gelmesi gerekir. Veri bloğu herhangi bir insatncenin ön belleğinde yoksa server process in local cache diskten fiziksel okuma yapması gerekir.  Instance buffer cache deki data bloğunu günceller ve DBwriter güncellenmiş dirty datayı yazar Checkpoint sırasında veya instance lerin boş buffer cache almaları gerektiğinde bunları diske yazar ancak RAC yapıda birden fazla instance aktif olarak aynı anda okuma ve yazma işlemlerini gerçekleştiriyorlar. Bu instanceler aynı veriye aynı anda erişebilirler, buffer cache tutarlılığını sağlamak için Tüm cluster nodlarında yazma işlemi tüm nodlar için seri olarak yapılması sağlanır. Bu şekilde her an her veri için sadece bir writer (yazar) olur ve buffer cache de veri tutarlılığı sağlanmış olur. Oracle RAC’da, bu koordinasyon, yüksek hız kullanan RAC örnekleri arasındaki iletişime dayanır. Bu ara bağlantı, iletişime ayrılmış yedekli özel bir ağa dayanmaktadır. RAC düğümleri arasında. Oracle Clusterware, bu özel ara bağlantıyı yönetir ve izler, olası iletişim sorunlarını tespit etmek için RAC düğümleri arasında heartbeat (kalp atışı) ile RAC düğümlerinin birbir ile sağlıklı iletişim kurup kurmadığını tespit eder. Herhangi bir RAC düğümü, önceden tanımlanmış bir zaman eşiği içindeki başka bir RAC düğümünden heartbeat (kalp atışı) yanıtı alamazsa (varsayılan olarak 30 saniye), Oracle Cluster Yazılımı, bunlar arasındaki ara bağlantıda bir sorun olduğunu belirler. Ve sonuçta nodların birinin cluster dan tahliye edilmesi olayını tetikleyecektir.

Özet olarak : Bir instance veriyi hafızaya çıkardığında, başka bir instance tarafından da bu verinin kullanılabilmesi için Cache Fusion adında bir yapı tüm instance’larda yer alan Database Buffer Cache’lerin ortaklaşa kullanılmasını sağlar. Bu yapı, ihtiyacı olan diğer instance’lara gereken blokları transfer ederken her zaman özel ağı (private interconnect) kullanır. Ve Buffer cache veri tutarlılığını sağlar.

Oracle RAC: Cache Fusion teknolojisi, koordinasyon ve senkronizasyondan sorumludur.

 

Oracle Clusterware Depolama Bileşenleri

Oracle Clusterware, bir depolama yapısından ve her Nodda çalışan bir dizi işlemden oluşur. Storage Structure ise iki paylaşılan depolama biriminden oluşur: Oracle Cluster Registry (OCR) ve Vote diski (VD) artı iki yerel
dosya içerir, Oracle Local Registry (OLR) ve Grid Plug and Play (GPnP) profil dosyaları.

OCR Cluster yapılandırma ayrıntılarını saklamak için kullanılır.

Voting Disk Cluster üyelik bilgilerini saklar. Oracle Clusterwareüyelerini belirlemek için Voting diski kullanır, Background Processi olan OCSSD VSD yi her saniye düğümün geçerli durumu ile günceller, Küme düğümleri arasındaki kalp atışı başarısız olursa VD gerekir.

Hem OCR hemde VD tüm sunucuların erişebileceği bir alanda depolanmalıdır bunun için en uygun yer ise ASM içindeki bir disk grubunda saklanmalıdır.

$ cat /etc/oracle/ocr.loc
ocrconfig_loc=+VOCR
local_only=FALSE

VD konumunu bulmak için aşağıdaki komutu kullanabilriz;

$ ./crsctl query css votedisk

Her RAC nodu için OLR, OCR nin local sadece o node için olan sürümü gibidir denebilir. O node için meta verileri depolar ASM ierisindeki OCR ye erişmeden ilgili node OLR den meta verilere ulaşabilir. OLR ve GPnP profile dosyaları GRID home dizini altında bulunur. /etc/oracle/olr.loc dosyasında ya da ocrcheck komutuyla kontrol edebilirsiniz:

$ cat /etc/oracle/olr.loc
olrconfig_loc=/u01/app/12.1.0/grid/cdata/knewracn1.olr
crs_home=/u01/app/12.1.0/grid
$ ocrcheck -local -config
Oracle Local Registry configuration is :
 Device/File Name : /u01/app/12.1.0/grid/cdata/knewracn1.olr

GPnP profili, küme hakkında ağ profili ve VD gibi birçok önemli bilgiyi kaydeder. GPnP profilinde bulunan bilgiler kümeye düğüm eklerken kullanılır. GRID_HOME / gpnp / /profiles/peer/profile.xml dosyasında saklanır.

GPnP profile