Oracle Enterprise Linux 5.3 Üzerine İki Düğümlü Oracle 11g R2 RAC Kurulumu

OE Linux 5.3 üzerine iki düğümlü Oracle 11g R2 Real Application Clusters(RAC) kurulumu 4 safhaya ayırmaktayım.

A. Linux üzerinde kurulum öncesi yapılandırma.

B. Oracle Grid Infrastructure yazılımının kurulumu.

C. Oracle Database yazılımının kurulumu.

D. Oracle veritabanı oluşturma.

 

 

Her bir adımın uygulamasına geçmeden önce Oracle RAC konseptine kısa bir göz atalım.

 

 

Oracle 11g R2 RAC mimarisi konsepti ve gelen yenilikler

 

 

 

Oracle Database 11g Release 2 itibariyle, Oracle Clusterware ve Oracle ASM, grid home olarak adlandırılan aynı tekil dizine kurulmaktadır. Oracle grid mimarisi kombine ürünlerin kurulumuyla adlandırılmaktadır.Ancak, Oracle Clusterware ve Oracle ASM ayrı ürünlerdir.

 

 

 

Birden fazla sunucunun Oracle Clusterware ve Oracle RDBMS yazılımlarını kullanarak, tek bir veritabanı üzerinde ve aynı zamanda (aktif/aktif) işlem yapabilmesine olanak sağlayan teknolojiye Oracle Real Application Cluster denir. Oracle RAC yapısının çekirdeğini yine Oracle tarafından geliştirilen “Cache Fusion” teknolojisi oluşturmaktadır. Cache fusion teknolojisi  birden fazla instance‘a ait ön bellek alanlarının kaynaştırılarak, tek bir önbellek alanı şeklinde kullanılmasıdır. Sonuç itibariyle cache fusion ‘ın görevi veritabanının tek bir instance tarafından yönetiliyormuş gibi davranmasını sağlamaktır.

 

 

 

Oracle Clusterware sunuculara host veya düğümler olarak bakarak birden fazla sunucunun tek bir sunucu gibi işlev görmesine imkan vermektedir. Halbuki sunucular bağımsızdır ve her bir sunucunun diğer sunucular ile iletişimini sağlamak için ilave prosesleri vardır. Bu şekilde tek bir veritabanı birden fazla sunucunun üzerinde düğümler olarak adlandırılan yapıda çalışırken her bir sunucunun donanım kaynakları ayrı ayrı paylaşımda olmaktadır. Böylece birden fazla sunucudan oluşan düğümlerde paylaşımlı bellek ve prosesleri için tahsis edilen kaynaklar düğüm sayısına parallel arttığından bellek ve proses performanslarındada yüksek oranda iyileşmeler meydana gelmektedir. Oracle Clusterware yazılımı Oracle Real Application Clusters hizmetinin çalışması için gerekli mimariyi desteklemektedir.

 

 

 

Oracle veritabanı, instance ve veri dosyaları arasında bire bir ilişki içindeyken, Oracle RAC veritabanı instancelar ve veri dosyaları arasında birçok ilişik içindedir. Bu sebeple veri dosyaları paylaşımlı bir depolama alanında tutulmalı ve Clusterware kurulu tüm düğümlerin bu paylaşımlı depolama alanına erişiminin sağlanması gerekmektedir. Her bir instance kendi bellek yapısını ve arkaplan prosesleri belirtmektedir.

 

 

 

Sunucu havuzları(server pools) Oracle 11g R2 ile yeni gelen özelliklerden bir tanesidir ve cluster ortamında iş yükünün mantıksal dağıtımı ile ilgili yeni konseptler getirmektedir. Sunucu havuzlarının kullanımının sağlanması için ilke bazlı(policy based) cluster yönetimi adı altında bir teknoloji ile sağlanmaktadır. Hem uygulamaları, hemde veritabanı instanceları ilke bazlı olarak sunucu havuzları içinde yönetilebilmektedir.

 

 

 

Sunucu havuzu, aslında RAC ortamında clusterware hizmetinde arzu edilen mantıksal işyükünü sağlayacak olan düğüm sayısını optimal seviyede tutarak(aktif/aktif), varsa diğer düğümleride yedekte bekleterek(pasif), bir felaket anında <- havuz içindeki düğümlerden birisi erişilemez olursa -> bu yedekteki düğümü havuza dahil ederek mantıksal işyükünü her daim optimal seviyede bulundurmayı sağlamaktadır. Bu şekilde, havuzlar mantıksal olarak işlevsellik yapmakta olup, aslında kümelerin cluster içindeki yönetimini sağlamaktadır.

 

 

 

 

 

 

 

 

 

 

 

Oracle Automatic Storage Management (ASM) yüksek performanslı ve entegre bir volume yöneticisi ve dosya sistemidir. Oracle Database 11g Release 2 sürümü itibariyle, Oracle ASM’ye ait disk gruplarında, clusterware tarafından kullanılan OCR ve voting diskleri saklayabilmekteyiz. OCR ve voting diskler Oracle clusterware tarafından kulanılan parçalardır. İsterseniz kısaca bu iki parçanın ne olduğuna bakalım;

 

 

 

  • OCR(Oracle Cluster Registry) disk kümeyi yönetir ve RAC veritabanı yapılandırma bilgilerini tutan dosyadır.
  • Voting disk ise düğümler arası üyelik bilgilerini yöneten dosyadır.

 

 

 

Oracle 11g R2 ile yeni gelen One Node(Tekli düğüm) teknolojisi ile Oracle RAC teknolojisinin failover ve yüksek erişilebilirlik nimetlerini kullanarak cluster içinde tek bir instance çalıştırılabilmektedir. Veritabanının RAC veritabanı olarak kurulması gerekmesine rağmen birden fazla düğüm yerine sadece tek bir düğüm seçilerek kurulum sağlanabilmektedir. Eğer bu düğüme bir şey olursa, bu tekli düğüm üzerindeki veritabanı başka uygun bir düğüme taşınabilmektedir.

 

 

 

Oracle RAC kurulumu ve yapılandırmasında kullanılan araçlar aşağıda yer almaktadır.

 

 

 

  • Oracle Universal Installer (OUI) –Oracle grid mimarisi yazılımını kurmaya yarayan grafiksel arayüzlü sihirbaz(Oracle Clusterware and Oracle ASM den oluşmaktadır)
  • Cluster Verification Utility (CVU) – Kümeleme ortamını doğrulamak için kullanılan komut satırı aracıdır. Kurulum öncesi olduğu kadar kurulum sonrasında kümeleme ortamının kontrol edilmesinde kullanılmaktadır.
  • Oracle Enterprise Manager(OEM) –  Tekli instance veya Oracle RAC ortamının yönetilmesini sağlayan web tabanlı grafiksel arayüzlü araçtır.
  • Server Control (SRVCTL) – Oracle Cluster Registry (OCR) içinde belirtilen kaynakları yönetmek maksadıyla kullanılan komut satırı aracıdır.
  • Cluster Ready Services Control (CRSCTL)– Oracle Clusterware bünyesindeki servisleri yönetmek için kullanılan komut satırı aracıdır. Bu servisler Cluster Synchronization Services (CSS), Cluster-Ready Services (CRS), and Event Manager (EVM) dir.
  • Database Configuration Assistant (DBCA)— Oracle veritabanı kurmak ve yapılandırmak için kullanılan grafiksel arayüzlü araçtır.
  • Oracle Automatic Storage Management Configuration Assistant (ASMCA)— Oracle ASM instanceları, disk gruplarını ve volume ları kurmak ve yapılandırmak için kullanılır. Hem grafiksel arayüzlü hemde komut satırından kullanılabilir.
  • Oracle Automatic Storage Management Command Line utility (ASMCMD)— Oracle ASM instanceları ve Oracle ASM disk grupları yönetmek, disk grupları için dosya erişim kontrolü yapmak ve Oracle ASM disk grupları içinde dizin ve dosyalarının yönetimini yapmak için kullanılan komut satırı aracıdır.
  • Listener Control (LSNRCTL)—Listener yönetiminde kullanılan komut satırı aracıdır.

 

 

 

ASMCMD, srvctl, sqlplus, veya lnsrctl komutlarını ASM veya clusterware sistemini yönetmek için kullanırken Oracle veritabanı dizini yerinde Grid dizini içindeki binary dosyaları çalıştırın. Bu sebeple yönetim yapılacakken ORACLE_HOME değişkeninin geçici olarak grid dizinini gösterin.

 

 

 

srvctl, sqlplus veya lnsrctl komutlarını veritabanı veya listenerları yönetmek için kullanılacaksa ORACLE_HOME değişkeninin Oracle veritabanı dizinini işaret etmesi gerekmektedir.

 

Oracle Clusterware dosyaları 11g R2 sürümünden itibaren blok veya raw cihazlar üzerinde kurulumu desteklenmemektedir.

 

 

 

A. Kurulum öncesi gereksinimler

 

 

  1. Donanım gereksinimleri.
  2. Network donanım gereksinimleri.
  3. IP adres gereksinimleri.
  4. İşletim sistemi ve yazılım gereksinimleri.
  5. Sunucuyu grid mimarisi kurulumu için hazırlama.

 

 

 

 

  1. Donanım Gereksinimleri: 

 

 

Kümeleme için grid mimarisinde en az 1.5 GB RAM olmalıdır.Oracle RAC için ise ilave en az 1 GB RAM olmalıdır. RAM değerini öğrenmek için aşağıdaki komutu çalıştırabilirsiniz.

 

 

 

# grep MemTotal /proc/meminfo

 

 

 

Swap alanı için ise en az 1.5 GB boş alana gereksinim vardır. Oracle swap alanının hesaplanmasında aşağıdakileri tavsiye eder. Tabii bunlar minimum gereksinimlerdir.

 

 

 

– 2GB RAM değerinde veya daha az olan sistemlerde mevcut RAM değerinin 1.5 katı

– 2 GB ve 16 GB RAM arası sistemlerde swap alanı RAM ile aynı tutun.

– 16 GB RAM üzerindeki sistemlerde swap alanını 16GB de sabitleyin.

 

 

 

Swap alanı bilgilerini almak için;

 

 

# grep SwapTotal /proc/meminfo

 

 

/tmp içindeki geçici alan boyutu en az 1GB olmalıdır,ancak ihtiyaç olduğu durumlarda fazla olmasında sakınca yoktur.

 

 

# df -h /tmp

 

 

Grid home dizini için en az 4.5 GB disk alanına gereksinim duyulmaktadır.

 

 

 

  1. Network Donanım Gereksinimleri:

 

 

Her bir düğümde en az iki adet network arayüz kartı(NIC) bulunmalıdır. Bir adaptor public network arayüzü kullanımı için, diğeri(private arayüz) ise düğümlerin birbiriyle iletişiminde kullanılmak içindir. Eğer Network Attached Storage(NAS) kullanılıyorsa ilave olarak bir adet NIC daha bulunmalıdır.

 

 

Bunun yanında, umumi arayüz isimleri her düğümde aynı olmalıdır. Eğer bir düğümde kullanılan public arayüz ismi eth0 ise, diğer tüm düğümlerdede public arayüz ismi eth0 olarak adlandırılmalıdır. Keza aynısı private arayüz ismi içinde geçerlidir.

 

 

Private network adaptörleri yüksek hızda network adaptörlerini kullanarak UDP protokolünü desteklemeli, ayrcıa TCP/IP destekli network switchleride desteklemelidir.

 

 

  1. IP Adres Gereksinimleri:

 

 

Oracle 11g R2 itibariyle SCAN adı verilen ve istemcilerin kümeye servis erişimini sağlayan yeni bir sanal network arayüz yöneticisi gelmiştir. SCAN farklı 3 adet  IP adrese sahiptir ve cluster ismi ile tanımlanmaktadır.Düğüm mantığı yerine cluster katmanında hizmet vermektedir. İstemci bağlantı talebinde bulunduğunda, bu istemciye vekaleten SCAN IP adres üzerinden dinlemede olan SCAN listener ve bu scan listenerın portu üzerinden bu talep karşılanır. Cluster içindeki tüm servisler, SCAN listerenera kayıtlı olduğundan, istemcinın bu bağlantı talebini cluster üzerindeki en az yük olan düğüme ait lokal listenere yönlendirerek bu hizmeti sağlar. Yeni düğümler eklendiğinde ve mevcut düğümlerden biri erişilemez olduğunda yeni yük dengesini SCAN hesaplar ve değişikliğe paralel olarak istemci bağlantı metriksini günceller.

 

 

 

SCAN ile VIP IP adresler birbirinden tamamen farklıdır. VIP IP adresi, SCAN sonucu sağlanan cluster servisleri aracılığıyla, istemcinin o düğümde açtığı oturumu sağlayan ve yöneten public IP adresidir ve aslında lokal listenerı işaret etmektedir. Düğümlerdeki listener.ora dosyası içindeki HOST parametresinin işaret ettiği adres işte bu Virtual IP adresi olmalıdır.

 

 

 

SCAN listener için DNS sunucusu kullanılmalıdır. Bu sebeple, kuruluma başlamadan önce DNS sunucusunun hazırlanması gerekmektedir. DNS sunucunuzda aşağıdaki girişleri manuel olarak ekleyiniz.

 

 

 

i)  Her bir düğüm için public IP adresi

ii) Her bir düğüm için virtual IP adresi

ii) Single client access name (SCAN) adresleri

 

 

 

SCAN adresler için kullanılan IP adresler VIP adresler ile aynı subnet içinde olmalıdır ve kurulumdan önce çekilecek ping komutlarına cevap vermemesi gerekmektedir.

 

 

 

  1. İşletim Sistemi ve Yazılım Gereksinimleri:

 

 

 

Hangi Linux versiyonunun kullanıldığını belirlemek için;

 

 

# cat /proc/version

 

 

Oracle 11g R2 sürümünü destekleyen Linux versiyonunu kullandığınızdan emin olmanız gerekmektedir.

 

 

 

Chipset versiyonunu öğrenmek için ise;

 

 

# uname –m

 

 

 

Mesela  64-bit mimarisi için sonuç “x86_64” şeklide olacaktır.Oracle 11g R2 sürümü, 32 bit chipset üzerine kurulamamaktadır.

 

 

 

Kernel ve errata versiyonunu öğrenmek için ise;

 

 

# uname –r

 

 

2.6.9-55.0.0.0.2.ELsmp

 

 

 

Grid mimarisini kurarken eğer eksik Linux paketi varsa sihirbaz bu paketleri listeleyecek ve bu paketlerin kurulmasını talep edecektir.Bu eksik paketleri bu aşamada alttaki komutu çalıştırararak yükleyebiliriz.

 

 

 

# rpm -Uvh <paket_ismi>

 

 

 

  1. Grid Mimarisi Kurulumu İçin Sunucunun Hazırlanması

 

 

 

 

  • RAC düğümleri arasında saatin senkronize edilmesi:

 

 

 

 

Oracle Clusterware 11g R2 (11.2), Oraclere RAC yayınlanırken kümeleme içersindeki tüm düğümler arasında saat senkronizasyonuna gereksinim duymaktadır.Aşağıdaki komut tüm düğümler üzerinden aynı saatin ayarlanmasını sağlayacak grafiksel arayüz programını çalıştıracaktır.

 

 

 

dateconfig

 

 

 

Ancak saat formatının kalıcı olarak ayarlanması için Network Time Protocol (NTP) veya Oracle Cluster Time Synchronization Service(octss) servislerinden birisi üzerinden bu ayarlamanın yapılması tavsiye edilmektedir.

 

 

Benim tavsiyem; Oracle Cluster Time Synchronization Servisi ile herhangi bir harici saat sunucusu ile irtibat kurmaya gerek duymadan tüm küme düğümleri arasında saat senkronizasyonun dahili olarak Oracle tarafından yapılandırılması ve takip edilmesi olacaktır.

 

 

Eğer Cluster Time Synchronization Servisi ile küme içinde saat senkronizasyonunu sağlamak istiyorsanız  Linux üzerinde Network Time Protocol (NTP) servisini iptal etmeli ve kaldırmalısınız.

 

 

 

NTP’yi devredışı bırakmak için;

 

 

 

# /sbin/service ntpd stop

# chkconfig ntpd off

# rm /etc/ntp.conf

 

 

 

Ayrıca alttaki girişide sistemden kaldırmanız gerekmektedir;

 

 

/var/run/ntpd.pid

 

 

 

  • Gerekli oracle kullanıcısı ve gruplarını oluşturma ve gerekli Oracle dizinlerinin oluşturularak oracle kullanıcısına gerekli izinlerin atanması. Tüm düğümlerde yapılıyor.

 

 

 

# groupadd -g 1000 oinstall

# groupadd -g 1200 dba

# useradd -u 1100 -g oinstall -G dba oracle

# mkdir -p  /u01/app/11.2.0/grid

# mkdir -p /u01/app/oracle

# chown -R oracle:oinstall /u01

# chmod -R 775 /u01/

# passwd Oracle

 

 

 

  • Linux kernel parametre değerlerinin ayarlanması:

 

 

 

/etc/sysctl.conf dosyasını açarak aşağıdaki kernel değerlerini giriyoruz. Kernel parametre değerlerinin ne anlama geldiği ve sisteminize en uygun değerleri nasıl hesaplayacağınız ile ilgili benimle irtibata geçebilirsiniz. Bu işlemleri tüm düğümlerde yapıyoruz.

 

 

 

#vi /etc/sysctl.conf

kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

 

 

 

Oracle 11gR2 itibariyle kurulum sihirbazı kernel.sem parametreleri eğer eksik ayarlanmışsa veya boşsa herhangi bir uyarı mesajı vermemektedir ve kurulum sonrasında ciddi sıkıntılar yaşabileceksiniz.

 

 

 

/etc/security/limits.conf dosyası içinde aşağıdakileri ekliyoruz.

 

 

 

oracle               soft     nproc   2047

oracle               hard    nproc   16384

oracle               soft     nofile   1024

oracle               hard    nofile   65536

 

 

 

/etc/pam.d/login dosyasında tek satır olarak  “session  required  pam_limits.so” değerini ekliyoruz.

 

 

 

  • Oracle kullanıcısı profile dosyasının ayarlanması:

 

 

 

Oracle kullanıcısı olarak oturum açarak .bash_profile dosyası içerisine aşağıdaki değerleri giriyoruz. Bu işlemi tüm düğümlerde yapıyoruz. ORACLE_SID ve ORACLE_HOSTNAME her düğümde ilgili düğümü işaret etmelidir.

 

 

 

ORACLE_HOSTNAME=linux1.localdomain; export ORACLE_HOSTNAME

ORACLE_UNQNAME=rac; export ORACLE_UNQNAME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME

ORACLE_SID=rac1; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

PATH=/usr/sbin:$PATH; export PATH

PATH=$ORACLE_HOME/bin:$PATH; export PATH

 

 

 

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

 

 

 

if [ $USER = “oracle” ]; then

  if [ $SHELL = “/bin/ksh” ]; then

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

 

 

 

  • Network yapılandırmasının yapılması

 

 

  1. Cluster ismini belirleyin. Benim senaryomda cluster ismi rac olacaktır.
  2. Küme içindeki her bir düğüm için public(umumi), private ve sanal(virtual) host isimlerini belirleyin.

 

 

 

Linux1 hostu için public host ismi à linux1

Linux2 hostu için public host ismi à linux2

Linux1 hostu için private host ismi à linux1-priv

Linux2 hostu için private host ismi à linux2-priv

Linux1 hostu için virtual host ismi à linux1-vip

Linux2 hostu için virtual host ismi à linux2-vip

 

 

 

Her bir düğümde tüm network adaptörleri için atanan IP adreslerini ve arayüz isimlerini belirlemek için alttaki komutu çalıştırabiliriz.

 

 

 

# /sbin/ifconfig

 

 

 

Her bir düğümde bir network adaptörüne statik olarak public bir IP adresi atayın. bu public IP adresinin DNS üzerinde kayıt edilmesi gerekmektedir.

 

 

 

Aynı zamanda düğümlerde public subnetten başka bir subnet içinde yer alan IP bloğundan private IP adresleri atayın.Bu private IP adresler eğer DNS içinde kayıtlı değillerse, her bir düğümde bunları /etc/hosts dosyası içerisine ekleyiniz. Tüm düğümlerin private IP adresleri her bir düğümdeki hosts dosyasında yer almalıdır.

 

 

 

Her bir düğüm için virtual IP adreslerini tanımlayın. Bu adresler ve isim DNS üzerinde kayıt edilmelidir. Virtual IP adreslerin public IP adreslerden farklı olması, ancak aynı subset içinde olması gerekmektedir. Virtual IP adresler clusterware kurulumundan sonra erişelebilir olacaktır.

 

 

 

Her 3 IP adresini DNS içinde çözebilecek SCAN belirlememiz gerekmektedir.Benim tüm IP adres atamaların aşağıdaki tabloda yer almaktadır.

 

 

 

Kimlik Host Düğüm İsim Tipi Adres Statik / Dinamik İsim çözümleme metodu
Düğüm 1 Public rac1 rac1 Public 192.168.2.101 Static DNS
Düğüm 1 virtual Oracle Clusterware seçecek rac1-vip Virtual 192.168.2.103 Static DNS ve/ veya hosts dosyası
Düğüm 1 private rac1 rac1-priv Private 192.168.0.101 Static DNS veya hosts dosyası
Linux 2 Public rac2 rac2 Public 192.168.2.102 Static DNS
Düğüm 2 virtual Oracle Clusterware seçecek rac2-vip Virtual 192.168.2.104 Static DNS ve/veya hosts dosyası
Düğüm 2 private rac2 rac2-priv Private 192.168.0.102 Static DNS veya hosts dosyası
SCAN vip 1 Oracle Clusterware seçecek rac Virtual 192.168.2.105 Static DNS
SCAN vip 2 Oracle Clusterware seçecek rac Virtual 192.168.2.106 Static DNS
SCAN vip 3 Oracle Clusterware seçecek rac Virtual 192.168.2.107 Static DNS

 

 

 

/etc/resolve.conf dosyası içine DNS sunucusunun adresini eklememiz gerekmektedir.

 

 

 

# vi /etc/resolve.conf

192.168.2.1

 

 

 

  • Paylaşımlı depolama alanının yapılandırması

 

 

 

Oracle RAC herşeyi paylaşır.Tüm veri dosyaları, clusterware dosyaları, veritabanı dosyaları umumi bir alanı paylaşmak zorundadır. Oracle, ASM tipi paylaşımlı depolama kullanılmasını tavsiye etmektedir.

 

 

Oracle Clusterware dosyaları veya Oracle Veritabanı dosyaları olarak ASM kullanıldığı takdirde, veritabanı sayısına bağlı olmaksızın her bir düğümde sadece bir adet Oracle ASM instance oluşturulur.

 

 

Depolama alanının ASM yapısını destekleyecek şekilde hazırlanması gerekmektedir. Sunucu yeniden başlatıldığında, eğer cihaz kalıcılığı için özel dosyalar hazırlamadıysanız kapanmadan önce /dev/sdg olarak beliren bir disk, /dev/sdg olarak değişebilir ve aynı zamandada sistem yeniden başladığında sahipliklerdede değişiklik meydana gelmiş olabilir. Bunun üstesinden gelmek için en basit metod Linux ASMLIB RPM paketinin yüklenmesidir. ASMLIB yazılımı Oracle ASM ile kullanılan depolama cihazlarında kalıcı hedefler ve izinler sağlamaktadır, ayrıca edev veya devlabel dosyalarının hedef ve izinleri için güncelleme ihtiyacını ortadan kaldırmaktadır.

 

 

ASMLIB RPM paketi aşağıdaki linkten indirilebilmektedir. Kernel versiyonunuz ile aynı versiyon numarasına sahip ASMLIB rpm paketini indirmeniz gerekmektedir, aksi durumda sorunlar yaşarsınız.

 

 

Oracle download sitesindeki download tabından “Linux Drivers for Automatic Storage Management” seçmeniz gerekir. Herbir Linux versiyonu için ayrı ayrı ASMLIB RMP paketleri vardır(SuSE Linux Enterprise Server 11, SuSE Linux Enterprise Server 10, Red Hat Enterprise Linux 5 AS, Red Hat Enterprise Linux 4 AS, SuSE Linux Enterprise Server 9, Red Hat Enterprise Linux 3 AS, SuSE Linux Enterprise Server 8 SP3,  Red Hat Advanced Server 2.1. gibi). Ayrıca OS listesi altından, oracleasmlib ve oracleasm-support paketlerini indirin.Aynı zamanda bu paketler ile uyumlu olan kernel paketinide indirmeniz gerekmektedir. uname -r komutu ile sunucunuzun kernel versiyonunu görebilirsiniz. Mesela, eğer kernel verisyonu 2.6.18-194.8.1.el5 ise bu durumda  oracleasm driver sürücüleri için kernel 2.6.18-194.8.1.el5 olmalıdır.

 

 

ASMLib 2.0 yazılımı toplamda 3 Linux paket setinden oluşmaktadır(kırmızı değerler benim girişlerimdir):

 

 

oracleasmlib-2.0 – Oracle ASM kütüphanesi

oracleasm-support-2.0 – ASMLib yönetimi için gerekli araçlar

oracleasm – Oracle ASM kütüphanesi için kernel modülü

 

 

 

6. Root kullanıcısı olarak tüm düğümlerde bu 3 paket yüklenmelidir.

 

 

 

# rpm -Uvh oracleasm-support-2.1.3-1.el4.x86_64.rpm

# rpm -Uvh oracleasmlib-2.0.4-1.el4.x86_64.rpm

# rpm -Uvh oracleasm-2.6.9-55.0.12.ELsmp-2.0.3-1.x86_64.rpm

 

 

 

7. ASMLIB yapılandırması için;

 

 

 

# oracleasm configure –I

 

 

 

Default user to own the driver interface oracle

Default group to own the driver interface dba

Start Oracle Automatic Storage Management Library driver on boot (y/n): y

Fix permissions of Oracle ASM disks on boot? (y/n): y

 

 

 

Bu işlemin sonunda;

 

 

/etc/sysconfig/oracleasm yapılandırma dosyası oluşturulur.

/dev/oracleasm mount point oluşturulur.

ASMLIB sürücüsü dosya sistemi mount edilir.

 

 

 

Aşağıdaki komut ile oracleasm kernel modülü yüklenir:

 

 

# /usr/sbin/oracleasm init

 

Her bir düğümde yukardaki işlemler teker teker tekrarlanmalıdır.

 

 

 

Paylaşımlı depolama alanındaki fiziksel disklerin formatlanma işleminden sonra ilgili fiziksel disklerde ASM disklerini aşağıdaki gibi oluşturuyoruz. Paylaşımlı fiziksel disklerin formatlama işlemini burada anlatmıyorum, tek bir düğüm üzerinde fdisk /dev/sdişlemi ile yapılabilmektedir. Herbir fiziksel diski bir ASM diskineatıyoruz. Aşağıdaki adımlar sadece tek bir düğüm üzerinde yapılmalıdır.

 

 

 

# oracleasm createdisk data0 /dev/sdb1

# oracleasm createdisk data1 /dev/sdc1

# oracleasm createdisk data2 /dev/sdd1

# oracleasm createdisk data3 /dev/sde1

# oracleasm createdisk data4 /dev/sdf1

# oracleasm createdisk data5 /dev/sdg1

# oracleasm createdisk data6 /dev/sdh1

# oracleasm createdisk cdata1 /dev/sdd2

# oracleasm createdisk cdata2 /dev/sde2

# oracleasm createdisk cdata3 /dev/sdf2

 

 

 

Yukardaki data1 den data6 ya kadar olan ASM diskleri veritabanı veri dosyalarını, redo log dosyalarını ve kontrol dosyalarını saklayacak, cden cdata3 e kadar olan ASM diskleri ise OCR ve voting disk dosyalarını saklayacaktır.OCR ve voting diskleri tutacak olan fiziksel disklerin boyutunun 1GB altında olmasında sakınca yoktur.

 

 

 

Eğer bir diski ASM diski olarak işaretlemekten vazgeçerseniz aşağıdaki komutla bu işlemi tamamlayabilirsiniz.

 

 

 

# /usr/sbin/oracleasm deletedisk <disk_ismi>

 

 

 

Tüm ASM disklerini oluşturduktan sonra listdisks komutu ile bu diskleri listeliyoruz.

 

 

 

# /usr/sbin/oracleasm listdisks

 

 

 

Oluşturulan AS disklerin tüm düğümler üzerinde görülebilmesini sağlamak amacıyla scandisks komutunu diğer düğümlerde çalıştırıyoruz. Bu işlem sonunda tüm düğümler bu paylaşımlı ASM disklerine erişebilecektir.

 

 

 

# /usr/sbin/oracleasm scandisks

 

 

 

Bu aşamada kurulum öncesi yapılandırma işlemi tamamlandı. Artık Oracle Grid Infrastructure yazılımı yüklenebilir.

 

 

 

B. Oracle Grid Infrastructure Yazılımının Yüklenmesi.

 

 

 

Oracle kullanıcısı olarak Oracle Grid Infrastructure yazılımı aşağıdaki gibi çalıştırılır. Grid yazılımın Oracle veritabanı dizininden farklı yere kurulması için varsayılan ORACLE_HOME dizinini kuruluma başlamadan önce geçici olarak değiştiriyoruz.

 

 

 

$ export ORACLE_HOME=/u01/app/11.2.0/grid

$ ./runInstaller

 

 

 

http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_grid.zip  linkinden yazılım indirilebilir.

 

 

 

  1. “Install and Configure Grid Infrastructure for a Cluster” seçerek ilerliyoruz.

 

 

 

 

 

  1. İkinci aşamada “Advanced Installation” seçeneği seçilerek ilerliyoruz. Üçüncü aşamada dil seçeneğini seçip ilerliyoruz.

 

 

 

 

 

 

 

  1. Üçüncü aşamada cluster bilgilerinin girildiği menu listelenmektedir. Burada;

 

 

Cluster name: rac

SCAN name: rac

SCAN port: 1521

 

Configure GNS seçeneğini boş geçerek ilerliyoruz.

 

 

  1. Cluster düğümlerinin belirtildiği menu listelenecektir. İkinci düğümü burada aşağıdaki gibi “Add” düğmesine basarak ekleyerek ilerliyoruz.

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Ekrandaki menüden “SSH connectivity…” düğmesine tıklayarak oracle kullanıcısının şifresini giriyoruz. Böylece tüm düğümlerde Linux sistemleri arasında güven teşkil edilmiş olmaktadır. 11G R2 öncesinde bu işlemler Linux üzerinden manuel yapılmaktaydı, ancak artık otomatik olarak grid kurulumunda yapılmaktadır.

 

 

 

 

 

 

 

  1. RAC sistemde public ve private olarak kullanılacak network arayüz isimlerini ve adaptörlerini belirliyoruz.

 

 

 

 

 

 

 

 

 

  1. OCR ve voting disklerin lokasyonlarını belirlemek için “Automatic Storage Management” seçeneğini seçerek ilerliyoruz. Bir sonraki ekranda ASM disk grubu oluşturuyoruz. Disklerin tanınması için “change discover path” düğmesine tıklayarak /dev/sd* ile tüm ASM disklerini listeliyoruz. ASM disk grup ismi olarak DATA giriyorum ve DATA ile başlayan diskleri bu gruba ekliyorum. Bu aşamada OCR ve voting diskleri tutacak olan ASM diskleri için bir disk grubu oluşturmuyorum. Kurulum sonunda çalıştırılacak ilk düğümde çalıştırılacak olan root.sh scripti ile CDATA adı altında bir ASM diskgrubu otomatik olarak oluşturulacaktır.

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Varsayılan izolasyon desteğini seçerek ilerliyoruz.
  2. Varsayılan OS gruplarını seçerek ilerliyoruz.
  3. Oracle base dizini olarak /u01/app/Oracle, software location olarak /u01/app/11.2.0/grid dizinlerini giriyoruz.

 

 

 

 

 

 

 

 

 

  1. Diğer seçenekleri varsayılan olarak seçerek kurulumu sonlandırıyoruz.

 

 

 

 

 

 

 

 

 

  1. Kurulum sonundaki scriptleri tüm düğümlerde sırasıyla teker teker çalıştırıyoruz.

 

 

 

 

 

 

 

 

Aşağıda RAC1 düğümünde çalıştırılan scriptler yer almaktadır. Aynı komutlar daha sonra RAC2 düğümündede çalıştırılmalıdır.

 

 

 

# cd /u01/app/oraInventory

# ./orainstRoot.sh

Changing permissions of /u01/app/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

 

Changing groupname of /u01/app/oraInventory to oinstall.

The execution of the script is complete.

 

# ./root.sh

Running Oracle 11g root.sh script…

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/11.2.0/grid

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

   Copying dbhome to /usr/local/bin …

   Copying oraenv to /usr/local/bin …

   Copying coraenv to /usr/local/bin …

 

 

Creating /etc/oratab file…

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

2010-01-01 15:56:39: Parsing the host name

2010-01-01 15:56:39: Checking for super user privileges

2010-01-01 15:56:39: User has super user privileges

Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

LOCAL ADD MODE

Creating OCR keys for user ‘root’, privgrp ‘root’..

Operation successful.

  root wallet

  root wallet cert

  root cert export

  peer wallet

  profile reader wallet

  pa wallet

  peer wallet keys

  pa wallet keys

  peer cert request

  pa cert request

  peer cert

  pa cert

  peer root cert TP

  profile reader root cert TP

  pa root cert TP

  peer pa cert TP

  pa peer cert TP

  profile reader pa cert TP

  profile reader peer cert TP

  peer user cert

  pa user cert

Adding daemon to inittab

CRS-4123: Oracle High Availability Services has been started.

ohasd is starting

CRS-2672: Attempting to start ‘ora.gipcd’ on ‘rac1’

CRS-2672: Attempting to start ‘ora.mdnsd’ on ‘rac1’

CRS-2676: Start of ‘ora.gipcd’ on ‘rac1’ succeeded

CRS-2676: Start of ‘ora.mdnsd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.gpnpd’ on ‘rac1’

CRS-2676: Start of ‘ora.gpnpd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.cssdmonitor’ on ‘rac1’

CRS-2676: Start of ‘ora.cssdmonitor’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.cssd’ on ‘rac1’

CRS-2672: Attempting to start ‘ora.diskmon’ on ‘rac1’

CRS-2676: Start of ‘ora.diskmon’ on ‘rac1’ succeeded

CRS-2676: Start of ‘ora.cssd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.ctssd’ on ‘rac1’

CRS-2676: Start of ‘ora.ctssd’ on ‘rac1’ succeeded

clscfg: -install mode specified

Successfully accumulated necessary OCR keys.

Creating OCR keys for user ‘root’, privgrp ‘root’..

Operation successful.

CRS-2672: Attempting to start ‘ora.crsd’ on ‘rac1’

CRS-2676: Start of ‘ora.crsd’ on ‘rac1’ succeeded

Now formatting voting disk: +CDATA/voting_disk.

CRS-4603: Successful addition of voting disk +CDATA/ voting_disk.

 

##  STATE    File Universal Id                File Name Disk group

—  —–    —————–                ——— ———

1. ONLINE   7b24ab5191b94f5fbf0078253186db97 (+CDATA/voting_disk) []

 

Located 1 voting disk(s).

CRS-2673: Attempting to stop ‘ora.crsd’ on ‘rac1’

CRS-2677: Stop of ‘ora.crsd’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.ctssd’ on ‘rac1’

CRS-2677: Stop of ‘ora.ctssd’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.cssdmonitor’ on ‘rac1’

CRS-2677: Stop of ‘ora.cssdmonitor’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.cssd’ on ‘rac1’

CRS-2677: Stop of ‘ora.cssd’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.gpnpd’ on ‘rac1’

CRS-2677: Stop of ‘ora.gpnpd’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.gipcd’ on ‘rac1’

CRS-2677: Stop of ‘ora.gipcd’ on ‘rac1’ succeeded

CRS-2673: Attempting to stop ‘ora.mdnsd’ on ‘rac1’

CRS-2677: Stop of ‘ora.mdnsd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.mdnsd’ on ‘rac1’

CRS-2676: Start of ‘ora.mdnsd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.gipcd’ on ‘rac1’

CRS-2676: Start of ‘ora.gipcd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.gpnpd’ on ‘rac1’

CRS-2676: Start of ‘ora.gpnpd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.cssdmonitor’ on ‘rac1’

CRS-2676: Start of ‘ora.cssdmonitor’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.cssd’ on ‘rac1’

CRS-2672: Attempting to start ‘ora.diskmon’ on ‘rac1’

CRS-2676: Start of ‘ora.diskmon’ on ‘rac1’ succeeded

CRS-2676: Start of ‘ora.cssd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.ctssd’ on ‘rac1’

CRS-2676: Start of ‘ora.ctssd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.crsd’ on ‘rac1’

CRS-2676: Start of ‘ora.crsd’ on ‘rac1’ succeeded

CRS-2672: Attempting to start ‘ora.evmd’ on ‘rac1’

CRS-2676: Start of ‘ora.evmd’ on ‘rac1’ succeeded

 

rac1     2011/02/02 16:02:24     /u01/app/11.2.0/grid/cdata/rac1/backup_20110202_160224.olr

Preparing packages for installation…

cvuqdisk-1.0.7-1

Configure Oracle Grid Infrastructure for a Cluster … succeeded

Updating inventory properties for clusterware

Starting Oracle Universal Installer…

 

Checking swap space: must be greater than 500 MB.   Actual 3999 MB    Passed

The inventory pointer is located at /etc/oraInst.loc

The inventory is located at /u01/app/oraInventory

‘UpdateNodeList’ was successful.

 

Oracle Grid Infrasture kurulumunu başarıyla tamamladıktan sonra artık Oracle yazılımı yükleyip veritabanını oluşturabiliriz.

 

 

 

C. Oracle veritabanı yazılımının kurulumu:

 

 

 

ORACLE_HOME veritabanının varsayılan dizinine işaret etmesi için değiştirdikten sonra  aşağıdaki komut ile Oracle veritabanı yazılımını yüklemeye başlıyoruz.

 

 

$ export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

$ ./runInstaller

 

 

 

1. İlk aşamada “Install Database software only” seçerek ilerliyoruz.

2. İkinci aşamada RAC veritabanı için “RAC database installation” seçeneğini işaretleyerek ilerliyoruz.

3. “Enterprise Edition” seçeneğini işaretleyerek ilerliyoruz. Lisansınız hangi versiyon ise onu seçiniz.

4. Diğer adımlarda varsayılan ayarları seçerek kurulumu tamamlıyoruz.

 

 

 

 

 

 

 

 

 

Kurulum sonrasında aşağıdaki scriptleri düğümlerde çalıştırıyoruz.

u01/app/orainstRoot.sh

u01/app/oracle/product/11.2.0/dbhome_1/root.sh

 

 

 

D. Oracle veritabanı oluşturma:

 

 

 

1. Oracle kullanıcısı olarak aşağıdaki komutu çalıştırarak Veritabanı Oluşturma Sihirbazını çalıştırıyoruz.

 

$ ./dbca

 

2.  İlk pencerede “Oracle real application clusters database”seçeneğini tıklıyoruz.

 

 

 

 

 

 

 

 

<!–[if !supportLists]–>3.       <!–[endif]–>“Create and configure database” seçeneğini tıklayarak ilerliyoruz.

 

 

 

 

 

 

 

<!–[if !supportLists]–>4.       <!–[endif]–>Listeden yapınıza uygun veritabanı şablonunu seçerek ilerliyoruz. Bu aşamada karşımızda gelecek olan “server pool” kısmında “administrator managed” bölümünü değiştirmeden ilerliyoruz. Bu bölümde cluster düğümlerini ilke yönetimli olarak sunucu havuzlarında tanımlamak istenirse “policy managed” seçilmelidir. Bu server pools adını verdiğimiz kaynakların mantıksal olarak dağıtılması Oracle Clouding tarafında tanımlanmaktadır ve ayrı bir makale yazısıdır.

 

 

<!–[if !supportLists]–>5.       <!–[endif]–>Aşağıdaki gibi gerekli değerleri girip depolama tipi olarak ASM seçiyoruz. Veri dosyalarının tutulacağı disk grubunu DATA olarak belirleyip ilerliyoruz. Global veritabanı olarak “rac.localdomain” giriyoruz. Siz dilediğiniz ismi verebilirsiniz.

 

 

 

 

 

 

 

 

<!–[if !supportLists]–>6.       <!–[endif]–>Son adımda özete bakarak veritabanının kurulumuna başlıyoruz.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<!–[if !supportLists]–>7.       <!–[endif]–>Kurulum sonunda OK basarak ekrana çıkan scripti tüm düğümlerde sırasıyla çalıştıyoruz.

 

 

 

 

 

 

 

 

 

 

 

 

RAC veritabanının ve küme servislerin sağlıklı çalışıp çalışmadığının kontrolünü yapmak için;

$ srvctl config database -d RAC

Database unique name: RAC

Database name: RAC

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: +DATA/RAC/spfileRAC.ora

Domain: localdomain

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: RAC

Database instances: RAC1,RAC2

Disk Groups: DATA

Services:

Database is administrator managed

 

$ srvctl status database -d RAC

Instance RAC1 is running on node rac1

Instance RAC2 is running on node rac2

 

$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 02 12:41:21 2011

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing options

 

SQL> SELECT inst_name FROM v$active_instances;

 

INST_NAME

————————————-

rac1.localdomain:RAC1

rac2.localdomain:RAC2

 

Oracle 11g Release 2 RAC yazılımı ve RAC veritabanı yapılandırmasını başarıyla tamamlıyoruz. Daha sonraki yazılarda Oracle 11g R2 RAC mimarisini yönetimsel ve performans iyileştirme başlıkları altında çok detaylı olarak inceleyeceğiz.
Alıntıdır.

Oracle Enterprise Linux 5.3 Üzerine İki Düğümlü Oracle 11g R2 RAC Kurulumu” için bir yorum

  1. I have read so many content about the blogger lovers however this piece of writing is genuinely a nice article, keep it up.

Yorumlar kapalı.