Pages

7 Şubat 2011 Pazartesi

OE Linux 5.3 üzerine iki düğümlü Oracle 11g R2 RAC kurulumu - adım adım

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 11g R2 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.

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 ile proses tahsis ve kullanım performanslarındada iyileşmeler meydana gelmektedir. Oracle Clusterware yazılımı Oracle Real Application Clusters hizmetinin çalışması için gerekli mimariyi desteklemektedir.


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 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. 

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 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ı 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 yerine, Grid dizini içindeki binary dosyaları çalıştırın. Bu amaçla yönetim yapılacakken ORACLE_HOME değişkenini Grid dizini olarak geçici olarak değiştirin.

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 mimarisinin 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 boş 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, public 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, ayrıca 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 sanal(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 değerleri giriyoruz. Kernel parametre değerlerinin ne anlama geldiği ve sisteminize uygun değerleri hesaplamak için Linux/Solaris kategorisi altındaki “Kernel parametre hesaplama” adlı blog yazımı inceleyebilirsiniz. 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ına 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, 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 adreslerinide 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.

Yukardaki linkte 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 drivsürücüleri için kernel 2.6.18-194.8.1.el5 olmalıdır.

ASMLib 2.0 yazılımı, 3 Linux paket setinden oluşmaktadır:

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(kırmızı değerler benim girişlerimdir);

# oracleasm configure

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/sdx işlemi ile yapılabilmektedir. Herbir fiziksel diski bir ASM diskine atı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 ASM disklerinin 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


  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.
  2. Üçü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 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şturulacak ve cdata1 ile cdata2 bu diskgrubunun ASM diskleri olarak mühürlenecektir.

  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/shared_config/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.


3.  “Create and configure database” seçeneğini tıklayarak ilerliyoruz.


4.  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.
5.  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.


6.  Son adımda özete bakarak veritabanının kurulumuna başlıyoruz.

 

7.  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




5 yorum:

  1. Bu yorum yazar tarafından silindi.

    YanıtlaSil
  2. Merhaba,

    RAC sistem için en az iki fiziksel server gerekir, elbette bu serverlar aynı makine üzerinde sanal olabilir. 4GB makine üzerinde Oracle 10 RAC kurman mümkün olacaktır, 11g olmaz. Kurulum için paylaşımlı bir storage gerekmektedir(her iki düğümde bunu görecek ve erişecek), grid ve db kurulumu her düğümde teker teker yapılacaktır; ancak veritabanı ve dosyaları paylaşımlı storage üzerinde bulunacaktır.Püf noktası bu.
    Umarım açıklayıcı olmuştur :)

    YanıtlaSil
  3. 11g R2 de 2 düğümlü RAC kurulumunu vmware server 2 de yaptım ama SCAN adresini DNS e kayıt edemedim oel5pae i686 kullanıyorum işletim şistemi olarak
    192.168.2.201 rac1.localdomain rac1
    192.168.2.202 rac2.localdomain rac2
    # Private
    10.10.1.1 rac1-priv.localdomain rac1-priv
    10.10.1.2 rac2-priv.localdomain rac2-priv
    # Virtual
    192.168.2.211 rac1-vip.localdomain rac1-vip
    192.168.2.212 rac2-vip.localdomain rac2-vip
    # SCAN
    192.168.2.301 rac-scan.localdomain rac-scan
    192.168.2.302 rac-scan.localdomain rac-scan
    192.168.2.303 rac-scan.localdomain rac-scan

    SCAN dışındaki ip adresleri /etc/hosts dosyasında tanımlanabiliyor ama SCAN adresi 11gR2 de dns kayıt edilmeliymiş.kurulumu tamamlayamamın sebebi grid kurulumunun 3. aşamasında bu hatayı aldım Oracle Error :: INS-40922
    Invalid SCAN Name - unresolvable to IP address.
    lütfen yardımcı olurmusunuz hocam.

    YanıtlaSil
  4. 11g R2 de 2 düğümlü RAC kurulumunu vmware server 2 de yaptım ama SCAN adresini DNS e kayıt edemedim oel5pae i686 kullanıyorum işletim şistemi olarak
    192.168.2.201 rac1.localdomain rac1
    192.168.2.202 rac2.localdomain rac2
    # Private
    10.10.1.1 rac1-priv.localdomain rac1-priv
    10.10.1.2 rac2-priv.localdomain rac2-priv
    # Virtual
    192.168.2.211 rac1-vip.localdomain rac1-vip
    192.168.2.212 rac2-vip.localdomain rac2-vip
    # SCAN
    192.168.2.301 rac-scan.localdomain rac-scan
    192.168.2.302 rac-scan.localdomain rac-scan
    192.168.2.303 rac-scan.localdomain rac-scan

    SCAN dışındaki ip adresleri /etc/hosts dosyasında tanımlanabiliyor ama SCAN adresi 11gR2 de dns kayıt edilmeliymiş.kurulumu tamamlayamamın sebebi grid kurulumunun 3. aşamasında bu hatayı aldım Oracle Error :: INS-40922
    Invalid SCAN Name - unresolvable to IP address.
    lütfen yardımcı olurmusunuz hocam.

    YanıtlaSil
  5. hocam dikkat ettim de tüm kurulumlarda vmware server kullanılmış.vmware 8 e rac kurmak mümkünmüdür?mümkünse neden kurulumlar vmware server üzerinden anlatılmış?

    YanıtlaSil