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
- Donanım gereksinimleri.
- Network donanım gereksinimleri.
- IP adres gereksinimleri.
- İşletim sistemi ve yazılım gereksinimleri.
- Sunucuyu Grid mimarisinin kurulumu için hazırlama.
- 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.
- 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.
- 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.
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.
- İş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>
- 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
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ı
- Cluster ismini belirleyin. Benim senaryomda cluster ismi rac olacaktır.
- 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.
# /usr/sbin/oracleasm deletedisk <disk_ismi>
Tüm ASM disklerini oluşturduktan sonra listdisks komutu ile bu diskleri listeliyoruz.
# /usr/sbin/oracleasm listdisks
# /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.
- "Install and Configure Grid Infrastructure for a Cluster" seçerek ilerliyoruz.
- İkinci aşamada “Advanced Installation” seçeneği seçilerek ilerliyoruz. Üçüncü aşamada dil seçeneğini seçip ilerliyoruz.
- Üçü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.
- Cluster düğümlerinin belirtildiği menu listelenecektir. İkinci düğümü burada aşağıdaki gibi “Add” düğmesine basarak ekleyerek ilerliyoruz.
- 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.
- RAC sistemde public ve private olarak kullanılacak network arayüz isimlerini ve adaptörlerini belirliyoruz.
- 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.
- Varsayılan izolasyon desteğini seçerek ilerliyoruz.
- Varsayılan OS gruplarını seçerek ilerliyoruz.
- Oracle base dizini olarak /u01/app/Oracle, software location olarak /u01/app/11.2.0/grid dizinlerini giriyoruz.
- Diğer seçenekleri varsayılan olarak seçerek kurulumu sonlandırıyoruz.
- 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
Bu yorum yazar tarafından silindi.
YanıtlaSilMerhaba,
YanıtlaSilRAC 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 :)
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
YanıtlaSil192.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.
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
YanıtlaSil192.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.
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