11 g rac -asm

41
ORACLE DATABASE 11G ASM RAC KURULUMU VE CLUSTER PATCH GEÇİLMESİ

Upload: anar-godjaev

Post on 06-Jul-2015

180 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 11 g RAC -ASM

ORACLE DATABASE 11G ASM RAC KURULUMU VE

CLUSTER PATCH GEÇİLMESİ

Page 2: 11 g RAC -ASM

1.Giriş

Oracle 11G R2 versiyonu ile Oracle’ın kendi geliştirdiği ASM(Automatic Storage Management)

yazılımını kullanarak RAC(Real Application Cluster) kuruluşunu yapacağız.Bu kuruluşu yine önceki

kurulumlarda olduğu gibi Vmware üzerinde yapacağız.

RAC sistemleri 2 veya daha fazla makinanın aynı file sistemi ortak olarak kullanması mantığına

dayanmaktadır.Vmware workstation versiyonları sharable disk kullanımına imkan vermiyor.Bu yüzden

Vmware Server 2.0 versiyonunu kullanacağız.

İlk olarak bir makinayla başlayıp daha sonra bu makinayı klonlayarak ilerliyeceğiz.İlk makinamızın ismi

RAC1 ikinci makinamızın ismi ise RAC2 olacak.

RAC1 için vm tarafında şu ayarları yapmamız gerekiyor;

2.Vm ayarları

Makinalarımızın kesinlikle kurulum sırasında sıkıntı çıkarmaması için memory olarak 2GB’er memory

veriyoruz.

Page 3: 11 g RAC -ASM

İstersek Kuurlumların (ORACLE_HOME,ASM_HOME…..) gibi alanlar için yeni bir disk alanı

tanımlayabiliriz ama yeterli yerimiz varsa gerek kalmayabilir.

RAC kurulu için herbir makinamızda en az iki tane ethernet kartı olması gerekmektedir.Biz 3 tane

tanımlayabiliriz.İki tanesi bridged bir tanesini NAT yapabilriiz.Yada hepsini birdged yada nat yapabiliriz.

Page 4: 11 g RAC -ASM

Bu ayarları yaptıktan sonra makinamızın vm üzerindeki görüntüsü şu şekilde olacaktır.

Fiziksel makinamız için gerekli ayarları yaptıktan sonra sıra işletiğm sistememiz için gerekli ayarları

yapmaya geldi.Bunlar Kernel ayarları,IP ayarları gibidir.

3.Kernel ,RPM,IP ayarları

Linux Redhat 5 makinamızda işletim sistemi ilk olarak Oracle 11G kurulumuna müsait değildir.İşletim

sisteminde çeşitli parametrelerle oynamalıyız,eksik paketleri yüklemeliyizki kurulum ön gereksinimlerini

karşılayabilellim.

Page 5: 11 g RAC -ASM

İlk olarak gerekli olan paketlerin yüklü olup olmadığına bakıyoruz.Kurulan işletim sisteminin 32bit yada

64bit olup olamdığına göre aşağıdaki paketlerin 32bit ve 64bit versiyonlarını yüklemek gerekebilir.

rpm -q binutils-2.*rpm -q compat-libstdc++-33*rpm -q elfutils-libelf-0.*rpm -q elfutils-libelf-devel-*rpm -q gcc-4.*rpm -q gcc-c++-4.*rpm -q glibc-2.*rpm -q glibc-common-2.*rpm -q glibc-devel-2.*rpm -q glibc-headers-2.*rpm -q ksh-2*rpm -q libaio-0.*rpm -q libaio-devel-0.*rpm -q libgcc-4.*rpm -q libstdc++-4.*rpm -q libstdc++-devel-4.*rpm -q make-3.*rpm -q sysstat-7.*rpm -q unixODBC-2.*rpm -q unixODBC-devel-2.*

Eğer paketlerden biri veya birkaçı yüklü değilse aşağıdaki komutu kullanarak ilgili paketi yükleyebiliriz.

[root@rac1 ~]# rpm –ivh paket_adi

Paketlerimizi optimize ettikten sonra sıra geliyor,kernel ayarlarını konfigüre etmeye,

/etc klasörü altındaki sysctl.conf dosyasında aşağıdaki değişiklikleri yapmamız gerekiyor.İlgili

parametre varsa değerini değiştiriyoruz.Yoksa ekliyoruz.

fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912kernel.shmmni = 4096# semaphores: semmsl, semmns, semopm, semmnikernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default=262144net.core.rmem_max=4194304net.core.wmem_default=262144net.core.wmem_max=1048586

Değişikliklerin aktif olması için aşağıdaki komutu çalıştırıyoruz.

[root@rac1 ~]# /sbin/sysctl -p

/etc/security klasörü altındaki limits.conf dosyası içine aşağıdaki bilgileri ekliyoruz.

oracle soft nproc 2047

Page 6: 11 g RAC -ASM

oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536

/etc/pam.d klasörü altındaki login dosyası içine aşağıdaki bilgileri ekliyoruz.

session required pam_limits.so

Eğer securit aktif ise SELINUX parametresini disable etmemiz gerekmektedir. /etc/selinux/config

dosyanın içinden ilgili parametreyi disable ediyoruz.

SELINUX=disabled

Aşağıdaki firewall ilgili ayarlarında kapalı olması gerekmektedir.

[root@rac1 ~]#service iptables stop[root@rac1 ~]#service ip6tables stop

[root@rac1 ~]#chkconfig iptables off[root@rac1 ~]#chkconfig ip6tables off

Kernel ayarlarını tamamladıktan sonra iki makinanın birbiriyle konuşabilmesi ve zaman farkı

olmaksızın haberleşebilmesi gerekmektedir.Bunun için Oracle her zaman işletim sisteminin NTP

dediğimiz Network Time protokülünü kullanmaktadır.NTP’yi kullanmıyorsak Oracle Cluster Time

Synchronization Service kullanarak RAC node ları arasında senkronizasyonu yapabiliriz.

NTP’yi kapatmak için aşağıdaki adımları uyguluyoruz.

# service ntpd stopShutting down ntpd: [ OK ]# chkconfig ntpd off# mv /etc/ntp.conf /etc/ntp.conf.org# rm /var/run/ntpd.pid

Eğer NTP’yi kullanacaksakta aşağıdaki işlemi gerçekleştirip Oracle’ın kurulum sırasında hata almadan

devam edebilmesini sağlayabiliriz.Bunun için /etc/sysconfig/ntpd dosyası içine –x opsiyonunu

ekliyebiliriz.Daha sonrada NTP yi tekrar başlatabiliriz.

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# service ntpd restart

Page 7: 11 g RAC -ASM

Oracle 11G ile beraber AMM dediğimiz Automatic Memory Management’ın kullanılabilmesi için Shared

Memory File sistemin kullanılması gerekmektedir.Bunu daha önceki notlarda anlatmıştık.TMPFS’i iptal

edip SHMFS kullanıyoruz.

# umount tmpfs# mount -t tmpfs shmfs -o size=2000m /dev/shm

Sıra geldi IP ayarlarını yapmaya bunun için ayırdığımız 2 bridged ip için static ipler verebilirz bunlar

için gateway ler ve Hostname vermek gereklidir.

hostname: rac1.localdomain

eth0 ip si: 192.168.2.101 (public address)eth0 gateway’i: 192.168.2.1 (public address)eth1 ip si: 192.168.0.101 (private address)eth1 gateway’i: olmayacak

Page 8: 11 g RAC -ASM

Bunlardan sonra /etc altındaki hosts dosyasına bu bilgilerin girilmesi ve kalıcı olması

sağlanmalıdır.hosts dosyamızın yapısı aşağıdaki gibi olacaktır.Bu ipler tamamen örnektir istenirse

farklı IP lerde verilebilinir.

127.0.0.1 localhost.localdomain localhost# Public192.168.2.101 rac1.localdomain rac1192.168.2.102 rac2.localdomain rac2# Private192.168.0.101 rac1-priv.localdomain rac1-priv192.168.0.102 rac2-priv.localdomain rac2-priv# Virtual192.168.2.111 rac1-vip.localdomain rac1-vip192.168.2.112 rac2-vip.localdomain rac2-vip# SCAN192.168.2.201 rac-scan.localdomain rac-scan

Scan ismini verdiğimiz IP gerçekten bir ethernet kartına denk gelen bir ip değildir.Oracle tekbir ip den

tüm nodların yönetilmesi için bu IP yi kullanmaktadır.

Yukarıdaki network tanımları sorun oluyorsa aşağıdaki gibi kullanmakta mantıklıdır.Çünkü bazen

domain isminin nerede olduğu önemlidir.

Page 9: 11 g RAC -ASM

[root@fordisisdb01 ~]# cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.172.25.80.91 fordisisdb01-bkp172.25.80.92 fordisisdb02-bkp127.0.0.1 localhost.localdomain localhost# Public193.243.205.136 fordisisdb01 fordisisdb01.localdomain193.243.205.137 fordisisdb02 fordisisdb02.localdomain# Private10.10.10.1 fordisisdb01-priv10.10.10.2 fordisisdb02-priv# Virtual193.243.205.140 fordisisdb01-vip193.243.205.141 fordisisdb02-vip# SCAN193.243.205.139 fordisisdb-scan172.25.253.100 hpovomng

Kesinlikle her ip biribirine her iki makinadan ping atabilmelidir.Eğer ping atılamıyorsa ilk olarak bu

düzeltilmeldir.

4.Kullanıcı ,Gruplar ve Klasörlerin oluşturulması

Oracle 11G kurulumu yapabilmek için root kullanıcısı haricinde işletim sistemi tarafına bir kullanıcı ve

bu kullanıcının bağlı olduğu grupların olması gereklidir.Ayrıca kurulumun yapılacağı dizinlerinde

yapılması gerekmektedir.

İlk olarak grup ve kullanıcıları Root kullanıcısı ile oluşturuyoruz.

[root@rac1 ~]# groupadd -g 1000 oinstall[root@rac1 ~]# groupadd -g 1200 dba[root@rac1 ~]# useradd -u 1100 -g oinstall -G dba oracle[root@rac1 ~]# passwd oracle

Daha sonra kurulum için gereken klasörlerimizi yaratıyoruz,ve gerekli permissionları veriyoruz.

[root@rac1 ~]# mkdir -p /data/u01/app11g/11.2.0/grid[root@rac1 ~]# mkdir -p /data/u01/app11g/oracle/product/11.2.0/db_1[root@rac1 ~]# chown -R oracle:oinstall /data/u01[root@rac1 ~]# chmod -R 775 /data/u01/

Daha sonra oracle kullanıcısına geçip oracle kullanıcısının .bashrc dosyasına aşağıdaki bilgilerle

değişiklik yapıyoruz.

[root@rac1 ~]# su – oracle[oracle@rac1 ~]$ vi .bashrc

# Oracle SettingsTMP=/tmp; export TMPTMPDIR=$TMP; export TMPDIR

Page 10: 11 g RAC -ASM

ORACLE_HOSTNAME=fordisisdb01.localdomain; export ORACLE_HOSTNAMEORACLE_UNQNAME=ISISDB; export ORACLE_UNQNAMEORACLE_BASE=/data/u01/app11g/oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOMEORACLE_SID=ISISDB1; export ORACLE_SIDORACLE_TERM=xterm; export ORACLE_TERMPATH=/usr/sbin:$PATH; export PATHPATH=$ORACLE_HOME/bin:/data/u01/app11g/11.2.0/grid/bin/:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATHCLASSPATH=$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 fifi

Artık ön gereksinimlerin hepsini tamamladık.Sıra 2 makinanın ortak kullanım disklerini tanımlamaya ve

makinaları klonlamaya geldi.Bu arada unutulmanması gereken

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linuxsoft-

085393.html sayfasından Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86 için

linux_11gR2_database_1of2.zip (1,285,396,902 bytes) (cksum - 2237015228)

linux_11gR2_database_2of2.zip (995,359,177 bytes) (cksum - 2649514514)

linux_11gR2_grid.zip (980,831,749 bytes) (cksum - 3583041487)

Dosyalarını /u01/app11g dizinine indirip ziplerini açıyoruz.

[root@rac1 ~]# cd /u01/app11g[root@rac1 ~]# unzip linux_11gR2_database_1of2.zip[root@rac1 ~]# unzip linux_11gR2_database_2of2.zip[root@rac1 ~]# unzip linux_11gR2_database_2of2.zip

5.Shared disklerin oluşturulması ve Makine

Oracle 11G RAC kurulumu için her iki makine içinde ortak olarak yazılacak sharable disklerin olması

ve bunların sisteme verimesi gerekmektedir.Makinamızı kapatıyoruz daha sonra aşağıdaki adımları

yapıyoruz.

Page 11: 11 g RAC -ASM
Page 12: 11 g RAC -ASM
Page 13: 11 g RAC -ASM

Yukarıdaki ekranlardaki adımı tamamladıktan sonra 4 adet daha disk eklememiz

gerekmektedir.Ekliyeceğimiz disklerin özellikleri aşağıdaki gibi olacaktır.Her bir disk için 3 er GB

verebiliriz.

File Name: [standard] shared/asm2.vmdkVirtual Device Node: SCSI 1:2Mode: Independent and Persistent

File Name: [standard] shared/asm3.vmdkVirtual Device Node: SCSI 1:3Mode: Independent and Persistent

File Name: [standard] shared/asm4.vmdkVirtual Device Node: SCSI 1:4Mode: Independent and Persistent

Page 14: 11 g RAC -ASM

File Name: [standard] shared/asm5.vmdkVirtual Device Node: SCSI 1:5Mode: Independent and Persistent

Bu işlemlerden sonra yapı şu şekilde olacaktır,

Daha sonra Rac1 makinamızın durduğu path’e gidip RAC1.vmx dosyasını açıyoruz ve aşağıdaki gibi

değişiklik yapıyoruz.

disk.locking = "FALSE"diskLib.dataCacheMaxSize = "0"diskLib.dataCacheMaxReadAheadSize = "0"diskLib.dataCacheMinReadAheadSize = "0"diskLib.dataCachePageSize = "4096"diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"scsi1.sharedBus = "VIRTUAL"scsi1.virtualDev = "lsilogic"

scsi1:1.present = "TRUE"scsi1:1.fileName = "D:\shared\asm1.vmdk"scsi1:1.writeThrough = "TRUE"scsi1:1.mode = "independent-persistent"scsi1:1.deviceType = "plainDisk"scsi1:1.redo = ""

scsi1:2.present = "TRUE"scsi1:2.fileName = "D:\shared\asm2.vmdk"scsi1:2.writeThrough = "TRUE"scsi1:2.mode = "independent-persistent"scsi1:2.deviceType = "plainDisk"scsi1:2.redo = ""

Page 15: 11 g RAC -ASM

scsi1:3.present = "TRUE"scsi1:3.fileName = "D:\shared\asm3.vmdk"scsi1:3.writeThrough = "TRUE"scsi1:3.mode = "independent-persistent"scsi1:3.deviceType = "plainDisk"scsi1:3.redo = ""

scsi1:4.present = "TRUE"scsi1:4.fileName = "D:\shared\asm4.vmdk"scsi1:4.writeThrough = "TRUE"scsi1:4.mode = "independent-persistent"scsi1:4.deviceType = "plainDisk"scsi1:4.redo = ""

scsi1:5.present = "TRUE"scsi1:5.fileName = "D:\shared\asm5.vmdk"scsi1:5.writeThrough = "TRUE"scsi1:5.mode = "independent-persistent"scsi1:5.deviceType = "plainDisk"scsi1:5.redo = ""

Makinamızı tekrar başlatıyoruz,Daha sonra eklediğimiz diskleri sistemin görüp görmediğine bakıyoruz.

[root@rac1 ~]# cd /dev[root@rac1 ~]# ls sd*sda sda1 sda2 sdb sdc sdd sde sdf

Görüldüğü gibi eklenen 5 diskide sistem gördü.Bu eklenen diskler sdb,sdc,sde,sdf olarak

görünmektedir.sda bizim ilk eklediğimiz üzerine linux kurulu olan disktir.

Şimdi bu diskleri fdisk ile partition yapmamız gerekmektedir.

[root@rac1 ~]# fdisk /dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until you decide to write them. After that, of course, the previouscontent won't be recoverable.

The number of cylinders for this disk is set to 1305.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1

Page 16: 11 g RAC -ASM

First cylinder (1-1305, default 1): ↵Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): ↵Using default value 1305

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System/dev/sdb1 1 1305 10482381 83 Linux

Command (m for help): wThe partition table has been altered!

Calling ioctl() to re-read partition table.Syncing disks.

Birinci disk için işlemi tamamladık diğer diskler içinde aynı şekilde sırasıyla "n", "p", "1", "Return",

"Return", "p" and "w" adımlarını yapmamız gerekmektedir.Tüm diskler içinde yapılandırma bitince /dev

altında diskler partition olarak şu şekilde duracaktır.

[root@rac1 ~]# cd /dev[root@rac1 ~]# ls sd*sda sda1 sda2 sdb sdb1 sdc sdc1 sdd sdd1 sde sde1 sdf sdf1

Asm kuracağımız için mevcut Kernel’ımıza göre isteğe bağlı olarak ASM paketlerini yükleyebiliriz

tamamen isteğe bağlıdır Clusturware kurulumu yapılırkende kurulabilir.

[root@rac1 ~]# uname -aLinux rac1.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

Kernel versiyonumuzu öğrendikten sonra Oracle’ın ilgili sayfasına

gidip(http://www.oracle.com/technetwork/topics/linux/downloads/rhel5-084877.html)

Kernel versiyonuna göre download edilebilir.

Bizim kernelımız için uygun olan seçenekler aşağıdaki 3 pakettir.Sırasıyla bunlar yüklenmelidir.

Library and Tools

oracleasm-support-2.1.3-1.el5.i386.rpm

oracleasmlib-2.0.4-1.el5.i386.rpm

Page 17: 11 g RAC -ASM

Drivers for kernel 2.6.18-8.el5

oracleasm-2.6.18-8.el5-2.0.4-1.el5.i686.rpm

Paketleri yüklemek için aşağıdaki komutu uygulayabiliriz.

[root@rac1 ~]# rpm -Uvh oracleasm*.rpm

Artık ASM yi ve disklerimizi konfigüre edebiliriz.İlk olarak asm yi konfigüre ediyoruz.

[root@rac1 ~]# oracleasm configure -iConfiguring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM librarydriver. The following questions will determine whether the driver isloaded on boot and what permissions it will have. The current valueswill be shown in brackets ('[]'). Hitting <ENTER> without typing an

Default user to own the driver interface []: oracleDefault group to own the driver interface []: dbaStart Oracle ASM library driver on boot (y/n) [n]: yScan for Oracle ASM disks on boot (y/n) [y]: Writing Oracle ASM library driver configuration: done

Kernel modülünü yüklüyoruz.

[root@rac1 ~]# /usr/sbin/oracleasm initLoading module "oracleasm": oracleasmMounting ASMlib driver filesystem: /dev/oracleasm

Yukarıdaki işlemlerde problem olması halinde aşağıdaki komutu kullanarak doğru dirverlar

indirilebilinir.

[root@rac1 ~]# /usr/sbin/oracleasm update-driver

Tüm diskleri Bir ASM disk ile ilişkilendiriyoruz.

[root@rac1 ~]# /usr/sbin/oracleasm createdisk DISK1 /dev/sdc1Writing disk header: doneInstantiating disk: done[root@rac1 ~]# /usr/sbin/oracleasm createdisk DISK2 /dev/sdd1Writing disk header: doneInstantiating disk: done[root@rac1 ~]# /usr/sbin/oracleasm createdisk DISK3 /dev/sde1Writing disk header: doneInstantiating disk: done[root@rac1 ~]# /usr/sbin/oracleasm createdisk DISK4 /dev/sdf1Writing disk header: doneInstantiating disk: done[root@rac1 ~]# /usr/sbin/oracleasm createdisk DISK5 /dev/sdg1Writing disk header: doneInstantiating disk: done

Gerekli değil ama diskleri gerçekten buldumu diye scan ediyoruz.

[root@rac1 ~]# /usr/sbin/oracleasm scandisks

Page 18: 11 g RAC -ASM

Reloading disk partitions: doneCleaning any stale ASM disks...Scanning system for ASM disks...

Artık rahatlıkla disklerimizin durumunu görüp listeleyebiliriz.

[root@rac1 ~]# /usr/sbin/oracleasm listdisksDISK1DISK2DISK3DISK4DISK5

Eğer Multipath kullanılmışsa diskler /dev/dm-* şeklinde görünecektir.Diskleri partition yapmadan direk

olarak aşağıdaki gibi kullanacağız.Mümkün olduğunca 1 den fazla diskle kurulum yapmak daha

mantıklıdır.

[root@fordisisdb01 dev]# /usr/sbin/oracleasm createdisk DISK5 /dev/dm-5Writing disk header: doneInstantiating disk: done[root@fordisisdb01 dev]# /usr/sbin/oracleasm createdisk DISK0 /dev/dm-0Writing disk header: doneInstantiating disk: done[root@fordisisdb01 dev]# /usr/sbin/oracleasm createdisk DISK1 /dev/dm-1Writing disk header: doneInstantiating disk: done[root@fordisisdb01 dev]# /usr/sbin/oracleasm scandisksReloading disk partitions: doneCleaning any stale ASM disks...Scanning system for ASM disks...[root@fordisisdb01 dev]# /usr/sbin/oracleasm listdisksDISK0DISK1DISK5DISK6

İkinci makinadan scan yaptığımızda diskler direk olarak görünecektir.Eğer multipath kullanıyorsak aynı

zamanda oracleasm ayarlarınıda değiştirmeliyiz.Bunuda her iki makinada vi editörü ile /etc/sysconfig/oracleasm dosyasını açıp aşağıdaki değişiklikleri yapıyoruz.

ORACLEASM_SCANORDER="dm"ORACLEASM_SCANEXCLUDE="sd"

Her iki makinada oracleasm servisini kapatıp açıyoruz.

[root@rac1 ~]# /etc/init.d/oracleasm restart

6.RAC2 makinasının ayağa kaldırı lması

Disk tanımlama kondifüre etme işlerimizde bittikten sonra artık makinamızı klonlayabiliriz.Bunun için

yapmamız gereken birinci makine yani Node 1 hostname le RAC1 makinasını kapatıp sanal

Page 19: 11 g RAC -ASM

makinanın bulunduğu klasörü kopyalayıp yapıştırmak.Örneğin diyelimki birinci node için makinamızın

klasörü D: nin altında RAC1 isimli klasörde duruyordu bunu kopyalayıp yapıştırıyoruz D: nin altına ve

klasör ismini RAC2 yapıyoruz.

RAC2 klasörünün içine girip RAC1.vmx isimli dosyayı açıp displayName = "RAC2" olarak

değiştiriyoruz.Gelen uyarılara ignore deyip geçebiliriz.

Daha sonra Vmserver menüsünde Virtual Machine > Add Virtual Machien to Inventory" seçiyoruz

buradan RAC2 klasörü altındaki RAC1.vmx dosyasının seçiyoruz.Böylece makinamız inventory

listemize gelmiş oluyor.

RAC2 makinasına start veriyoruz gelen uyarıya "I _copied it" diyerek geçiyoruz.

Makine açıldıktan sonra network ayarlarında problem olabilir.Bu yüzden menüde

System/administration/Network kısmına giriyoruz.Karşımıza aşağıdaki gibi bir ekran gelecektir.

İlk olarak burdaki device ları deactive ediyoruz ve eth1.bak ve eth0.bak dosyalarını siliyoruz.eth0 isimli

device a çift tıklayabilir yada edit diyerek aşağıdaki ekranı elde ediyoruz ve aşağıdaki ekrandaki gibi

değişikliklerimizi yapıyoruz.

Page 20: 11 g RAC -ASM

Hardware device tab’Ina gelip mac adresinin olduğu kısımda probe butonuna basıp makinanın doğru

mac almasını sağlıyoruz.Ok diyerek işlemi bitiriyoruz.

Aynı işlemi eth1 device ı içinde yapıyoruz ip adresi olarak 192.168.0.102 mask olarak 255.255.255.0

verip kesinlikle gateway vermiyoruz.ok diyerek kapatıyoruz.

Bu sefer DNS tabına girerek hostname’i ra2.localdomain olarak değiştiriyoruz.

Page 21: 11 g RAC -ASM

İşlemleri tamamladıktan sonra menüden File / Save seçeneğine geliyoruz,yaptıklarımızı kaydediyoruz

daha sonra her iki device ıda active ediyoruz.Aktivasyon sonrası görünüm aşağıdaki gibi olacaktır.

Root kullanıcıse ile yaptığımız bu işlemlerden sonra oracle kullanıcısına geçiyoruz .bashrc dosyasını

açıyoruz ve içinde aşağıdaki değişiklikleri yapıyoruz.

[root@rac2 ~]# su - oracle[oracle@rac2 ~]$ vi .bashrc

Page 22: 11 g RAC -ASM

ORACLE_SID=RAC2; export ORACLE_SIDORACLE_HOSTNAME=rac2.localdomain; export ORACLE_HOSTNAME

Daha sonra RAC1 makinasınıda açıp her iki makine biribirini görüyormu diye bakabilmek için

aşağıdaki komutlar makinaları birbirine pingletiyoruz.Bu işlemleri her iki makinada da yapıyoruz.

[root@rac1 ~]# ping -c 3 rac1[root@rac1 ~]# ping -c 3 rac1-priv[root@rac1 ~]# ping -c 3 rac2[root@rac1 ~]# ping -c 3 rac2-priv

[root@rac2 ~]# ping -c 3 rac1[root@rac2 ~]# ping -c 3 rac1-priv[root@rac2 ~]# ping -c 3 rac2[root@rac2 ~]# ping -c 3 rac2-priv

7.Clusterware GRID yazılımının kurulması

RAC1 makinası üzerindeyken clusterware yazılımızın olduğu directory’e giriyoruz.Gridkten sonra

makinalarımız gerçekten RAC kuruluşuna müsaitmi diye kontrol edebilmek için aşağıdaki komutu

çalıştırıyoruz.

[root@rac1 ~]# ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

Eğer bir hata görmüyorsak kuruluma başlıyoruz.Yoksa nerde hata varsa hatayı düzeltip devam

edebiliriz.Kesinlikle burada verilen uyarılara dikkat etmek gerekmektedir.Bazen ssh connectivty hatası

alınabiliyor.Grid kurulumuna ssh connetcivty yapıp kesip daha sonra yukarıdaki komutu tekrar

çalıştırabiliriz.

Şimdi sıra geldi Clusturware yazılımını kurmaya bunun için indirdiğimiz grid klasörü altındaki

runinstaller dosyasını çalıştıracağız.Tabiiki bunu yapabilmek için oracle kullanıcısı ile login olup grafik

ekranı almamız gerekmektedir.Bir deiğer dikkat etmemiz gereken kesinlikle her iki makinanında açık

olması gerekli ve kurulumun birinci makinadan yapıalacağıdır.

[oracle@rac1 ~]$./runInstaller

"Install and Configure Grid Infrastructure for a Cluster" seçeneğini seçip next diyoruz.

Page 23: 11 g RAC -ASM

"Typical Installation" ı seçip next diyoruz.

Aşağıda gelen "Specify Cluster Configuration" ekranında aynı bilgilerin olduğunu kontrol edip add

butonuna basıyoruz.

Page 24: 11 g RAC -ASM

Add butonuna bastıktan sonra 2.node un bilgilerini giriyoruz ve ok tuşuna basıyoruz.

Bu sefer "SSH Connectivity..." butonuna basıyoruz,oracle kullanıcısı için passwordumuzu

giriyoruz.setup diyerek 2 makine arasındaki ssh connectivityi sağlıyoruz.Böylece her iki makine

birbirine şire sormadan otomatik bağlanabilir oluyor.Setup bitincede test butonuna basıyoruz.

Page 25: 11 g RAC -ASM

Yukarıdaki işlemide bitince bu sefer "Identify network interfaces..." butonuna basıyoruz,eth0 ın

public ,eth1 in private olmasını sağlıyoruz.Ok tuşuna basıyoruz daha sonra da next diyerek diğer

ekrana geçiyoruz.

Page 26: 11 g RAC -ASM

Yeni gelen ekranda software location olarak "/u01/app11g/11.2.0/grid" ‘i seçiyoruz.Cluster registry

storage type olarak "Automatic Storage Manager" ‘ı seçiyoruz.ASM parolasını girip next butonuna

basıyoruz.ASM parolası ileride bize asm yi yönetirken gerekli olacaktır.Next diyerek ilerliyoruz.

Daha sonra gelen disk grup ekranında disk grup ismi olarak DATA’yı aynen bırakıyoruz.Disk

redundancy olarak external’ı seçiyoruz ve Candicate disks seçeneğini seçiyoruz.İşte burada

yukarılarda yaptığımız ASM ile diskleri formatlamıştık o işlemi kullanıyoruz.Eğer ASM ile diskleri

formatlamasıydık,all disks seçeneğinde tüm diskleri raw olarak (/dev/sd*….) görüyor olacaktık.

Page 27: 11 g RAC -ASM

Şimdi gelen inventroy ekranı için path’İ default olarak bırakıp devam ediyoruz.

Şimdiki aşama ise kurulum için gerekli olan prerequsetlein check edilmesi aşaması tüm

prerequsetlerin yerine getildiğinden emin oluyoruz.Eğer önemli olmadığını düşündüklerimiz varsa

İgnore check box ına işaretleyip next butonuna basıyoruz.

Page 28: 11 g RAC -ASM

Artık herşey tamam olduğuna göre Finish butonuna basarak kurulumu başlatıyoruz.

Kurulum devam ediyor,Kurulum her iki makinayada yapılıyor.Diğer makinaya gidip yeniden kurulum

yapmaya gerek yoktur.

Page 29: 11 g RAC -ASM

Son aşamada bazı scriptlerin her iki makinadada çalıştırılması isteniyor.Biz bunları her iki makinadada

çalıştırıyoruz.Ve daha sonra çalıştırma tamamlandıktan sonra OK butonuna basıyoruz.

Çalıştırılan scriptlerin görüntüsü şu şekilde olacaktır.

[root@rac1 ~]# cd /u01/app/oraInventory[root@rac1 ~]# ./orainstRoot.shChanging permissions of /u01/app/oraInventory.

Page 30: 11 g RAC -ASM

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.

En son herşeyin tamamlanmasını bekliyoruz.Bazen aşağıdaki gibi ilginç bir hata alınabilinir.

Hatanın detayına indiğimizde aşağıdaki gibi bir bilgi görebiliriz.Çok önemli bir hata değildir DNS

kullanmadığımız için bazen bu şekilde hata alınabilmektedir.Çok önemli dğildir next diyerek devam

ediyoruz.

INFO: Checking Single Client Access Name (SCAN)...INFO: Checking name resolution setup for "rac-scan.localdomain"...INFO: ERROR:INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "rac-scan.localdomain"INFO: ERROR:INFO: PRVF-4657 : Name resolution setup check for "rac-scan.localdomain" (IP address: 192.168.2.201) failedINFO: ERROR:INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "rac-scan.localdomain"INFO: Verification of SCAN VIP and Listener setup failed

Son olarak artık herşey tamamsa Close diyerek kurulum ekranlarını bitiriyoruz.

Page 31: 11 g RAC -ASM

8.Database yazılımının kurulması ve Veritabanının kurulması

İlk olarak iki makina raasında db softwarenin kurulup kurulamayacağına bakmamaız gerekir.Bunun

için aşağıdaki komutu herhangi bir makinadan çalıştıracağız.

[root@rac1 ~]# ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

Page 32: 11 g RAC -ASM

Clusterware yani grid yazılımının kurulumunu tamamladıktan sonra şimdi sıra database software

kuruluşuna geldi,bunun içinde her iki makinada açıkken birinci makine üzerinden oracle kullanıcısı ile

software’in olduğu path’e gidiyoruz ve run installer’ı başlatıyoruz.

[oracle@rac1 ~]$./runInstaller

Ekranda gelen security seçeneğini kaldırıp next diyerek devam ediyoruz.

Create and Configure database seçeneğini seçip next diyoruz.

Page 33: 11 g RAC -ASM

Server class seçeneğini seçip next diyoruz.

Gelen ekranda Real application cluster seçeneğinin seçili olduğunu görüp ve rac1 ile rac2 nin seçili

olduğunu görüp next diyoruz.

Page 34: 11 g RAC -ASM

Kurulum için typical yada advanced seçeneğini seçebiliriz,biz typical installation seçeneğini seçip next

diyoruz.

Gelen ekranda software location olarak "/u01/app/oracle/product/11.2.0/db_1"’ı seçiyoruz,storage type

olarak "Automatic Storage Manager" ‘ın seçildiğine emin oluyoruz,asm password’umu giriyoruz,Global

database name olarak "RAC.localdomain" seçiyoruz,ve son olarak sys ve system kullanıcıları için

kullanıclacak şifremizi giriyoruz ve next butonuna basıyoruz.

Page 35: 11 g RAC -ASM

Sonraki ekranda prerequestler kontrol ediliyoruz,varsa önemsiz gördüğümüz ignore ederek next

diyerek kuruluma devam ediyoruz.

Page 36: 11 g RAC -ASM

Artık herşey OK ise Finish butonuna basarak kurulumu başlatıyoruz.

Kurulum aşağıdaki gibi devam edecektir.

Software kurulumu tamamlanınca otomatik olarak DBCA ile database create aşamasına geçiliyor.

Page 37: 11 g RAC -ASM

Database create aşaması tamamlanınca gelen ekranda OK tuşuna basıyoruz.

Yine clusterware yazılımında olduğu gibi heriki nodeda da bir scriptin çalıştırılması isteniyor.Bu

scriptleri çalıştırıyoruz ve Ok tuşuna basıyrouz.

Page 38: 11 g RAC -ASM

Herşey tamamlanınca son ekran geliyor ve burada close diyerek kurulumu tamamlıyoruz.

Page 39: 11 g RAC -ASM

9.RAC komutları

Kurulumlar tamamlandıktan sonra artık RAC veritabanı üzerinde farklı komut setlerinin nasıl

çalıştırılacağı nasıl yönetileceğini görebiliriz.

Örneğin svrctl komutumuzla veritabanlarını ve RAC yapısının durumunu kontrol edebiliriz.

[oracle@rac1 ~]$ srvctl config database -d RAC

Database unique name: RACDatabase name: RACOracle home: /u01/app/oracle/product/11.2.0/db_1Oracle user: oracleSpfile: +DATA/RAC/spfileRAC.oraDomain: localdomainStart options: openStop options: immediateDatabase role: PRIMARYManagement policy: AUTOMATICServer pools: RACDatabase instances: RAC1,RAC2Disk Groups: DATAServices: Database is administrator managed

[oracle@rac1 ~]$ srvctl status database -d RACInstance RAC1 is running on node rac1Instance RAC2 is running on node rac2

Yine istersek Sqlplus’a bağlanarak V$ACTIVE_INSTANCES view’ını kullanarakta instance ların durumunu görebiliriz.

[oracle@rac1 ~]$ sqlplus / as sysdba

SQL> SELECT inst_name FROM v$active_instances;

INST_NAME---------------------------------------------------------------------------rac1.localdomain:RAC1rac2.localdomain:RAC2

istersek brinci makine üzerinden https://rac1.localdomain:1158/em adresini kullanarak enterprise

manager ile de RAC yönetimini yapabiliriz.

Page 40: 11 g RAC -ASM

Veritabanını kapatmak için aşağıdaki komutu görüyoruz.Bu komutçalıştığında her iki instance ta

kapanıyor.

[oracle@rac1 ~]$ srvctl stop database -d RAC -o immediate

Sadece tek bir intsance ı kapatmak istiyorsak ya aşağıdaki komutu kullanabilir yada ilgili instance ın

olduğu makinaya gidip o instance ‘a sqlplus ile bağlanıp shutdown immediate verebiliriz.

[oracle@rac1 ~]$ srvctl stop instance -d RAC -i RAC1 -o immediate

Örneğin bir makinanın node’u ile tüm iletişimi durudurup o instance’ın asm sini kapatabiliriz.

[oracle@rac1 ~]$ srvctl stop nodeapps -n rac1[oracle@rac1 ~]$ srvctl stop asm -n rac1

Herhangi bir instance için listener’ı durudurmak içinde aşağıdaki komutları kullanıyoruz.

[oracle@rac1 ~]$ srvctl stop listener -n rac1

Tam tersi olarakta kapattığımız servisleri açmak istiyorsakta aşağıdaki komutlar işimizi görecektir.

[oracle@rac1 ~]$ srvctl start database -d RAC[oracle@rac1 ~]$ srvctl start asm -n rac1[oracle@rac1 ~]$ srvctl start nodeapps -n rac1[oracle@rac1 ~]$ srvctl start listener -n rac1[oracle@rac1 ~]$ srvctl start instance -d RAC -i RAC1

Page 41: 11 g RAC -ASM

Tüm servislerin durumunu görmek istiyorsak aşağıdaki komutları kullanabiliriz.Kesinlikle sağlıklı

çalışan bir RAC yapısında tüm servislerin ONLINE olması gerekmektedir.

[oracle@rac1 ~]$ crs_stat –t

Name Type Target State Host ------------------------------------------------------------ora....C1.inst application ONLINE ONLINE rac1 ora....C2.inst application ONLINE ONLINE rac2 ora....AC1.srv application ONLINE ONLINE rac1 ora....AC2.srv application ONLINE ONLINE rac2 ora....RAC.cs application ONLINE ONLINE rac1 ora.RAC.db application ONLINE ONLINE rac1 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora....rac1.gsd application ONLINE ONLINE rac1 ora....rac1.ons application ONLINE ONLINE rac1 ora....rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora....rac2.gsd application ONLINE ONLINE rac2 ora....rac2.ons application ONLINE ONLINE rac2 ora....rac2.vip application ONLINE ONLINE rac2