RAC

Transkript

RAC
TROUG
[ Oracle 11g Veritabanları için
Yüksek Erişilebilirliğe Giriş
Serisi ]
Oracle RAC
(Real Application Cluster)
Emre BARANSEL
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Giriş
Oracle RAC, 9i veritabanı versiyonuyla tanıtılmış ve her versiyonda özellikleri artarak,
tutarlılığı iyileşerek, günümüzde oldukça yaygın kullanılan bir Oracle teknolojisi haline
gelmiştir. Bu yazıda Oracle RAC teknolojisinin genel bileşenleri, kurulumu, yönetilmesi ve
izlenmesi hakkında genel ve kavramsal açıklamalar bulacaksınız. Yazıdaki tanımlamalar ve
açıklamalar 11gR2 versiyonu için geçerlidir.
Cluster, birbirine bağlı birden fazla bilgisayarın veya sunucunun, son kullanıcı ve
uygulamalara tek bir sunucu gibi görünmesini ifade eder. Oracle RAC, Oracle veritabanları
için cluster çözümüdür. Birden fazla sunucunun işlem gücü, veritabanı katmanında tek bir
sunucuya gore daha yüksek performans ve erişilebilirlik ayrıca ölçeklenebilirlik sağlar.
Oracle RAC, birden fazla veritabanı sunucusunun tek bir sunucu gibi çalışmasını sağlamak
için altyapı olarak Oracle Clusterware’i kullanır.
Oracle Clusterware, birçok platformda, Oracle RAC çalıştırmak için gerekli olan tek
clusterware yazılımıdır. Bunun yanında, eğer Oracle RAC ile uyumlu ise, farklı clusterware
yazılımlarının da kullanılması mümkündür.
Oracle RAC veritabanı, yapısal olarak cluster olmayan veritabanından farklıdır. Oracle RAC
ortamında sunucular üzerinde birer instance çalışır ve bu instance’lar tek bir veritabanını
yönetirler. Her instance’a özel;
-
En az bir redo grubu ve
Undo tablespace bunlunmalıdır.
Oracle RAC tüm uygulama türleri için yüksek erişilebilirlik ve ölçeklenebilirlik sağlar.
Uygulamalar kod değişikliğine ihtiyaç duymadan Oracle RAC üzerinde çalışabilirler.
Oracle Clusterware
Oracle Clusterware, Oracle veritabanı için entegre ve bütün bir cluster yönetim çözümüdür.
Bu clusterware, node üyeliği, grup servisleri, global kaynak yönetimi ve yüksek
erişilebilirlik gibi cluster yönetimi için gerekli tüm fonksiyonları sağlar.
Oracle Clusterware, Oracle RAC için dizayn ve entegre edilmiştir. Herhangi bir yönetim
aracını kullanarak yarattığınız veritabanı, otomatik olarak Oracle Clusterware tarafından
kayıt altına alınır ve yönetilir. Bunun dışında Virtual Internet Protocol (VIP) adresi, Single
Client Access Name (SCAN), SCAN listener, Oracle Notification Service ve Oracle Net listener
gibi diğer gerekli komponentler’de Oracle Clusterware tarafından yönetilir. Bu kaynakların
1
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
hepsi sunucu açıldığında Oracle Clusterware tarafından otomatik olarak başlatılır ve
herhangi bir hata durumunda da yeniden başlatır. Oracle Clusterware daemon’ları
cluster’daki her sunucuda çalışırlar.
Oracle Clusterware ‘in yönettiği her servis “CRS resource” olarak adlandırılır. “CRS
resource” bir veritabanı, instance, servis, listener, VIP adresi veya bir uygulama işlemi
olabilir. “CRS resource”ların konfigürasyon bilgileri Oracle Cluster Registry (OCR)
dosyalarında tutulur. SRVCTL komutları kullanılarak, tanımlı CRS resource’lar yönetilebilir.
Ayrıca Oracle tarafından öntanımlı olmayan ve cluster’daki sunucularda çalışan herhangi
bir işlemi (process) yönetmek için “CRS resource” yaratılabilir.
Oracle RAC Mimarisi
2
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Cluster-uyumlu depolama çözümleri
Oracle RAC veritabanı dosyaların paylaşımlı kullanıldığı bir mimaridir. Tüm datafile’lar,
control file’lar, spfile ve redolog dosyaları, cluster uyumlu, paylaşımlı disklerde
tutulmalıdırlar. Böylelikle tüm cluster veritabanı instance’ları bu dosyalara erişebilir.
Oracle RAC için, desteklenen, cluster uyumlu bir depolama çözümü seçmelisiniz. Oracle
veritabanı RAC için aşağıdaki depolama seçeneklerini sunar:

Oracle Automatic Storage Management (ASM)
ASM Oracle’ın RAC için tavsiye ettiği, disklerin Oracle instance’ı tarafından yönetildiği
bir depolama seçeneğidir.

RAC uyumlu bir “cluster file system”
Oracle’ın ürünleri olan Linux için kullanılabilen “OCFS2”, windows için kullanılabilen
“OCFS for Windows”, ya da Oracle RAC uyumlu üçüncü parti cluster file system’ler.

RAC uyumlu “network file system”ler (NFS)
Oracle RAC Ağ (Network) Yapısı
Oracle RAC çalıştıracak sunucular üzerinde aşağıdaki IP adreslerinin, kurulumdan önce
tanımlanması gerekir.

Public IP address (Açık IP adresi)
Sunucuya ağ üzerinden işletim sistemi seviyesinde erişim için kullanılır. Sunucuya
yönetimsel amaçlı erişim için bu IP adresi kullanılır.

Virtual IP address (Sanal IP adresi)
Bu IP adresi otomatik yük devretme (failover) amaçlı kullanılır. Eğer sunuculardan biri
erişilmez olursa, bu sunucunun VIP adresi başka bir sunucu üzerine taşınır. Bu durumda
VIP adresi TCP bağlantıları kabul eder ancak direk Oracle veritabanına bağlantıları
kabul etmez.

Private IP address (Özel IP adresi)
Sadece cluster içindeki sunucuların birbirleri ile iletişimi amacıyla kullanılan ip
adresleridir. Bu IP adreslerinin oluşturduğu ağ Interconnect (arabğlantı) Ağı olarak
3
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
bilinir. Interconnect ağı cluster’daki tüm sunucuları birbirine bağlayan özel bir ağdır.
Linux ve UNIX sistemlerde Oracle Clusterware, interconnect için UDP (User Datagram
Protocol) ya da RDS (Reliable Data Socket) kullanacak sekilde yapılandırılabilir.
Windows cluster’lar TCP (Transmission Control Protocol) kullanırlar. Oracle
Clusterware interconnect ağında crossover kabloların kullanılması desteklenmez.
SCAN - Single Client Access Name (Tek İstemci Erişim İsmi)
11gR2 versiyonu ile birlikte, her cluster icin bir SCAN ismi yaratmanız gerekmektedir.
SCAN, DNS (Domain Name Server) ya da GNS (Grid Naming Service) üzerinde tanımlanan
ve round robin ile üç ip adresine eşlenen bir ağ ismi olacaktır. Oracle RAC veritabanına tüm
erişimlerin SCAN kullanılarak gerçekleştirilmesi tavsiye edilmektedir. Gelen bağlantı
istekleri SCAN listener’lar üzerinden karşılanacak ve aktif instance’lara VIP’ler kullanılarak
dağıtılacaktır. SCAN kullanıldığında, RAC konfigürasyonunda değişiklikler olsa da (sunucu
ekleme, çıkarma gibi) istemciler bağlantı tanımlarını değiştirmek zorunda olmayacaktır.
Oracle RAC Hafıza (Memory) Yapısı
Oracle RAC veritabanları, kendi memory ve background process(arkaplan işlemleri)‘ne
sahip iki ya da daha fazla veritabanı instance’ına sahiptir. RAC veritabanında, cluster
olmayan veritabanlarındaki memory ve process yapısının yanında Oracle RAC’a özel bazı ek
processler ve memory yapıları bulunmaktadır.
Her instance için SGA içerisinde bir tampon önbellek (buffer cache) bulunmaktadır. Oracle
RAC, Cache Fusion özelliğini kullanarak bu önbellekleri mantıksal olarak birleştirir ve
instance’ların verileri tek bir önbellekteymiş gibi işlemesini sağlar.
Oracle RAC memory alanındaki bu birleşmenin tutarlılığını sağlamak için iki process
kullanır. Bunlar Global Cache Service (GCS) ve Global Enqueue Service (GES)’dir. GSC ve
GES, her datafile’ın ve önbellekte tutulan her bloğun kaydını Global Resource Directory
(GRD)’de tutar. GRD içeriği tüm aktif instance’lara dağıtılır.
Bir instance veriyi önbelleğe yazdığında, cluster içindeki başka bir instance, önbellekteki bu
bilgiye diskten okumaya kıyasla daha hızlı biçimde erişebilir. Cache Fusion, diskten okuma
yerine, önbellekteki blokları ilgili instance’lar arasında direk olarak taşır. Oracle RAC,
instance’lar arası iletişim ve blok taşıma işlemi için daha once bahsettiğimiz interconnect
ağını kullanır.
4
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Oracle RAC Arkaplan İşlemleri (Background Processes)
Bir önceki bölümde bahsettiğimiz GCS and GES process’leri ve GRD, birlikte çalışarak Cache
Fusion yapısını oluşturur. Bunlar dışında Oracle RAC’a özel process’ler ve görevleri
aşağıdaki gibidir:

ACMS: (Atomic Controlfile to Memory Service)
Dağıtılmıs SGA memory alanındaki bir update’in başarılı olarak tamamlanarak commit
olduğunu ya da hata durumunda iptal edildiği tüm instance’lar arasında koordine ve
garanti eden bir process’dir.

GTX0-j: (Global Transaction Process)
Oracle RAC ortamında “XA global transaction” ların desteğini sağlar.

LMON: (Global Enqueue Service Monitor)
Global kuyrukları (Global Enqueue) ve kaynakları tüm cluster çapında izler ve global
kuyruk kurtarma (recovery) işlemini gerçekleştirir.

LMD: (Global Enqueue Service Daemon)
Gelen uzak kaynak taleplerini her instance için yönetir.

LMS (Global Cache Service Process)
Datafile’ların varolan durumlarını ve her önbelleğe alınan bloğu takip ederek Global
Resource Directory (GRD) ‘ye bilgileri kaydeder. Ayrıca uzak instance’lara mesaj akışını
kontrol eder ve farklı instance’ların tampon önbellekleri (buffer cache) arasında blok
imajlarının transferini sağlar. Bu “Cache Fusion” özelliğinin bir parçasıdır.

LCK0 (Instance Enqueue Process)
Library and row cache talepleri gibi Cache-Fusion dışında kalan kaynak taleplerini
yönetir.

RMSn (Oracle RAC Management Processes)
Yönetilebilirlik görevlerini gerçekleştirir. Görevlerinin arasında cluster’a yeni bir
instance eklendiğinde Oracle RAC ile ilgili kaynakların yaratılması vardır.
5
TROUG

[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
RSMN (Remote Slave Monitor)
Bağımlı arkaplan işlemlerinin (background slave process) yaratılması ve diğer
instance’lar ile iletişimini yönetir. Bu bağımlı arkaplan işlemleri, başka bir instance
üzerinde çalışan bir işlem adına, bulunduğu inctance’daki görevleri gerçekleştirir.
Automatic Workload Management (Otomatik İş Yükü Yönetimi)
“Automatic Workload Management” kullanıcı ve uygulamalara optimum performansın
sağlanması için iş yükünün dağıtımını yönetmemizi sağlar. Bu yönetim, veritabanı
erişimleri için en yüksek erişilebilirliği sağlamak, hızlı hata kurtarma ve konfigürasyon
üzerine iş yükünün en uygun şekilde dağıtılmasını kapsar. Automatic workload
management özelliğinden ayrıca, cluster olmayan Oracle veritabanlarında veritabanı
servislerini kullanarak faydalanılabilir. Bu en çok Oracle Data Guard, Oracle Streams
ortamlarında tercih edilir.
Automatic workload management aşağıdaki bileşenlerden oluşur:

High Availability Framework (Yüksek Erişilebilirlik Yapısı)
Yüksek Erişilebilirlik Yapısı, Oracle Veritabanının tüm bileşenlerini çalışır durumda
tutmasını sağlar. Oracle Clusterware önemli bileşenleri izler ve durduklarında yeniden
başlatır (aksi bir konfigürasyon tercih edilmezse). Oracle Clusterware ve Oracle RAC
ayrıca konfigürasyon değiştiğinde istemcilere uyarı gönderilmesini sağlar. Bu sayede
6
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
istemcilerin hızlı şekilde değişime cevap vermesini, dolayısıyla uygulama
geliştiricilerine, kesinti ve konfigürasyon değişikliklerinin son kullanıcılar tarafından
farkedilmemesi olanağını sağlar. Yüksek erişilebilirlik yapısı, ayrıca hizmet veremeyen
bir instance üzerindeki tüm işlemleri diğer instance’lar üzerine taşır.

Single Client Access Name - SCAN (Tek İstemci Erişim İsmi)
SCAN, 11g Release 2 ile gelen bir özelliktir. Oracle RAC veritabanına istemcilerin
erişmesi için kullanabileceği, DNS ya da GNS’te tanımlanan tek bir ağ ismi ve IP
adresidir. SCAN sayesinde, cluster konfigürasyonunda değişiklik yapıldığında, istemci
TNS tanımlarında değişiklik yapmaya gerek kalmaz. Ayrıca SCAN, istemcilerin Oracle
veritabanına “Easy Connect String”(Kolay Bağlantı Metni) ile bağlanarak yük dağılımı
(load balancing) ve yük devretme (failover) özelliklerini de kullanma şansı tanır.
SCAN kullanımı 11g Release2 versiyonunda zorunludur. GNS kullanılıyorsa Oracle SCAN
‘i otomatik olarak yaratır. Eğer GNS kullanılmıyorsa, SCAN DNS’te tanımlanmalıdır.

Load Balancing Advisory (Yük Dengeleme Öneri Sistemi)
Bu özellik, veritabanının uygulamalara, güncel servis seviyeleri ve ilgili instance
bilgilerini sağlama yeteneğidir. Uygulamalar bu bilgi sayesinde direk olarak en iyi servis
kalitesi sunacak olan instance’a bağlantı kurabilirler. Oracle veritabanı yük dengeleme
bilgisi ile çalışabilmek için Java Database Connectivity (JDBC) ve Oracle Data Provider
for .NET (ODP.NET) bağlantı türleri ile entegre edilmiştir. Uygulamalar programlama
seviyesinde değişikliğe ihtiyaç duymadan bu entegre bağlantı türlerini kullanabilirler.

Servisler
Servisler, Oracle RAC veritabanlarında tanımlanabilen varlıklardır. Servisler sayesinde
veritabanı iş yüklerini gruplayabilir ve yük tanımlanan instance’lara yönlendirilebilir.
Ayrıca, servisleri kullanarak, Oracle veritabanının processlere atayacağı ve process iş
yükünü gözleyebileceği kaynaklar tanımlayabilirsiniz. Servislere tahsis edeceğiniz
uygulamalar, yüksek erişilebilirlik ve yük dengeleme gibi yukarıda tanımladığımız
Automatic Workload Management karakteristiklerine sahip olacaktır. Birçok Oracle
veritabanı özelliği servisler ile entegre edilmiştir. Örneğin Resource Manager (Kaynak
Yöneticisi) ile servislerin bir instance içinde kullanabileceği kaynaklar kısıtlanabilir.
Ayrıca Oracle Streams, Advanced Queuing, Oracle Scheduler gibi özellikleri servislerle
entegre olarak kullanabilirsiniz. Oracle RAC veritabanlarında, konfigürasyonunu
yapacağınız servis performans kuralları, veritabanının o servis için her instance’a
ayıracağı iş yükü miktarını belirleyecektir. RAC veritabanını yeni sunucular,
uygulamalar, uygulama bileşenleri vs. ekleyerek genişlettiğinizde, ihtiyaç duyacağınız
yeni servisleri de ekleyebilirsiniz.
7
TROUG

[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Server Pools (Sunucu Havuzları)
Server Pool ile, cluster yöneticileri, Oracle Clusterware’in kaynakları nasıl kullanacağını
tanımlayan kurallar yaratabilirler. Bir sunucu sadece bir server pool içinde yer
alabilirken, veritabanı birden fazla server pool üzerinde çalışabilir. Servisler, server
pool’daki tüm sunucularda (UNIFORM) ya da sadece bir sunucuda (SINGLETON)
çalışacak şekilede yaratılabilir.

Connection Load Balancing (Bağlantı Yük Dengeleme)
Oracle Net Servisleri veritabanı bağlantıları için yük dengeleme sağlar. Yük dengeleme
bağlantı yaratıldığı esnada gerçekleşir. Belirli bir servis için gelen bağlantılar, o servisi
sunan tüm instance’lar arasında dağıtılır. Servis tanımında, bağlantıların ne şekilde
dağıtılacağı belirlenebilir ancak, bununla birlikte Oracle Net Servisini de konfigüre
etmeniz gerekir. Yük Dengeleme Öneri Sistemi aktif olduğunda, listener yük dengeleme
için öneri sistemini kullanır.
Oracle RAC Kurulumu
Oracle Clusterware ve Oracle Veritabanı yazılımı “Oracle Universal Installer” grafik arayüzü
ile kurulabilir. RAC veritabanını yaratmak için ise DBCA (Database Configuration Assistant)
arayüzü kullanılabilir. Oracle Clusterware kurumu için http://download.oracle.com sayfası
üzerinden ilgili işletim sistemi için “Grid Infrastructure“ kurulum paketi indirilebilir. “Grid
Infrastructure“ kurulumu içinde Oracle Clusterware, Automated Storage Management
(ASM), ve ASM Cluster File System yazılımları bulunur. Oracle Clusterware kurulumunu
tamamlayıp çalışırlığını test ettikten sonra, Oracle veritabanı yazılımını kurabilirsiniz.
Veritabanı yazılımı kurarken, kurulum bir cluster ortamı üzerinde çalıştığını tespit
ettiğinde, otomatik olarak veritabanı RAC opsiyonu yükler. Ayrıca bu kurulum esnasında
isterseniz yeni bir veritabanı yaratma seçeneğiniz de bulunmaktadır. Tercihlerinize göre bir
RAC veritabanı yaratmanız için kurulum DBCA’yı çalıştıracaktır.
Bu kurulumları cluster içindeki herhangi bir sunucu üzerinde yapabilirsiniz. Diğer
sunucuların yazılım kurulumları da otomatik gerçekleşecektir.
Varsayılan olarak, Oracle RAC kurulumu içinde bir adet servis yaratılır. Bu servis veritabanı
içindir. Servisinadı DB_NAME ve DB_DOMAIN parametrelerinin değerlerine göre,
db_name.db_ domain şeklinde isimlendirilir.
8
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Oracle RAC Ortamlarının Yönetilmesi
Bir cluster veritabanının tek bir noktadan yönetilebilmesi için Oracle Enterprise Manager,
SQL*Plus, ya da SRVCTL gibi Oracle RAC komut satırı arayüzleri kullanılabilir.

Oracle Enterprise Manager
Oracle Enterprise Manager cluster olmayan RAC ya da RAC veritabanlarını yönetebilir.
Database Control arayüzü ile tek bir veritabanı ve Grid Control arayüzü ile birden fazla
veritabanı yönetilebilir. Bu grafik arayüz üzerinden birçok yönetim görevini
gerçekleştirmek mümkündür.

Server Control Utility (SRVCTL)
SRVCTL tek bir noktadan Oracle RAC veritabanının yönetilebileceği bir komut satırı
arayüzüdür. SRVCTL ile veritabanını ve instance’ları durdurabilir, başlatabilir,
instance’lar ya da servisler ekleyebilir ve çıkartabilirsiniz. SRVCTL ile ayrıca
Clusterware, ASM ve 11gR2 versiyonuyle gelen “Oracle RAC One Node” da yönetilebilir.

SQL*Plus
SQL*Plus komutları tek bir instance için çalışır. Bu instance SQL*Plus ‘ı çalıştırdığınız
lokal instance ya da Oracle Net servisleri ile bağlandığınız uzak bir instance olabilir.

Cluster Verification Utility (CVU)
CVU, paylaşımlı depolama birimleri, ağ konfigürasyonları, sistem gereksinimleri, Oracle
Clusterware, işletim sistemi grup ve kullanıcıları gibi cluster bileşenlerinin
doğrulanması için kullanılan bir komut satırı aracıdır. CVU’yu kurulum öncesi kontrol
için çalıştırabildiğiniz gibi kurulum sonrası kontrolleri için de kullanabilirsiniz. Ayrıca
cluster’a sunucu ekleme, sunucu çıkarma gibi yönetimsel işlemlerden sonra bu
işlemlerin başarılı tamamlandığını kontrol etmek için de kullanmakta fayda vardır.
Oracle Universal Installer, Oracle Clusterware ve Oracle Veritabanı kurulumu
sonrasında, cluster ortamının konfigürasyonunu kontrol etmek için CVU çalıştırır.

DBCA
DBCA, Oracle RAC, Oracle RAC One Node ve cluster olmayan Oracle veritabanlarının
yaratılması ve ilk konfigürasyonlarının yapılması için önerilen araçtır..

NETCA
NETCA, Oracle RAC ortamındaki ağ konfigürasyonu için kullanılır.
9
TROUG
[ Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi ]
ORACLE RAC (Real Application Cluster)
Oracle RAC Ortamlarının İzlenmesi
Web tabanlı Oracle Enterprise Manager Database Control and Grid Control ile Oracle RAC
veritabanı izlenebilir. Ayrıca global view’lar (gv$ view’ları) RAC veritabanlarında izleme
için sıklıkla kullanılır. Neredeyse tüm v$ view’ı için, gv$ view’ı mevcuttur ve v$ bilgilerinin
yanında ekstra bir kolonda instance numarası tutulur. catclustdb.sql scripti gv$ view’larını
yaratır. Eğer veritabanı DBCA ile oluşturulursa, bu script otomatik olarak çalışır.
Ayrıca, Automatic Database Diagnostic Monitor (ADDM) ve
Automatic Workload
Repository (AWR) raporları, veritabanı performansının gözlemlenmesi için çok faydalı
bilgiler sunar.
10

Benzer belgeler

RAC Kurulumu

RAC Kurulumu Graphical Internet Text-based Internet Development Libraries Development Tools Legacy Software Development Server Configuration Tools Administration Tools Base Java Legacy Software Support System T...

Detaylı

Veri Yapıları - Ders Notu - Süper

Veri Yapıları - Ders Notu - Süper for(int i = 1; i < n; i++){ key = arr[i]; j = i - 1; while(j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j = j - 1;

Detaylı