Öncelikler Oracle RAC mimarisinden biraz bahsedelim ki kullanacağımız kavramlar havada kalmasın.
Birden fazla bilgisayarın grid yazılımı ve Oracle Database yazılımını kullanarak Tek bir veritabanı üzerinden işlem yapmasını sağlayan yapı diyebeliriz basitçe. Şöyle ki kurulumunu yaptığımız oracle Database single node üzerindeydi. kurulum yaptığım database sunucusu herhangi bir sebepten dolayı erişilemez duruma geldiği anda veritabanımız devre dışı kalıyordu. RAC mimarisinde ise birden fazla node bulunmaktadır. Sunuculardan bir tanesi çöktüğü zaman onun iş yükü de diğer sunucu tarafından üstlenilir ve veritabanımıza bağlanan kullanıcılar bunu hissetmeden kesintisiz hizmet almaya devam ederler. Her sunucu kendine at bir instance üzerinden işlemleri gerçeleştirmektedir.Ancak Cache fusion Teknoloji sayesinde oracle database sanki Tek bir instance tarafından yönetiliyormuş gibi davranır. Oracle RAC paylaşımlı depolama alanı (shared Storage ) yapısını kullanır. Çünkü dosyalar ve instance arasında 1'e 1 ilişki yoktur. 2node'lu bir yapımız olduğunu düşünürsek; 2 sunucunun da veri dosyalarına erişme imkanı bu şekilde sağlanmaktadır. Oracle RAC mimarisinin bize faydalarını şu şekilde özetleyebiliriz.
* Erişebilirlik (Fault Tolerance) : Kaynaklar ve uygulamalar birden fazla sunucu üzerinde çalışacağı için, bir sunucumuzdaki arıza veya hata sistemin hizmet vermesine engel olmayacaktır. Dolayısıyla kesintisiz hizmet vermeye devam edecektir sistemimiz.
*Yük Dağıtma (Load Balancing) : Kullanıcı istekler donde'lar arasında paylaştırılır. Sistem yükü dengeli bir şekilde dağıtılmış olur.
*Ölçeklenirlik (Scalability) : Sistem çalışırken hizmet kesintisi olmadan yeni node ekleyip çıkarabiliriz yapımıza.
Mantık olarak düşünürsek zaten bir tane süper sunucumuz olmasındansa bu özellikleri 3 4 farklı sunucuya dağıtıp totalde aynı donanım kaynaklarına sahip olarak RAC yapısını kullanmak daha mantıklıdır. Çünkü Tek sunucumuz olduğunda bir arıza yüzünden veritabanımıza erişim kesilicekken diğer türlü bir sunucumuzun arıza durumunda dahi diğer üç tanesi hizmet vermeye devam edecek ve hizmet kesintimiz olmayacaktır.. Yeri geldikçe bu mimarinin sahip olduğu spesifik özellikler hakkında açıklamalarda buluncağım . Şimdi kurulum öncesi gereksinimlerimize ve senaryomuza bir göz atalım.
RAC Kurulum Öncesi Gereksinimler Ve Kurulum Senaryomuz
Kurulum için Virtualbox üzerinde iki Sanal Makine yaratacağız. RAC yapımız 2node üzerinden çalışacaktır.
Donanım :
- Grid mimarisi en az 1,5GB, ORACLE RAC ise enaz 1GB RAM ihtiyacı duyuyor. Yani oluşturacağımız sanal makineler 3 GB ram'e sahip olmalıdır performanslı bir kurulum için.
- Swap Değerleri Oracle Database kurulumundaki gibi belirleniyor.
- Temp Alanımız Grid için en az 1GB ve Grid Home Dizini için de en az 4,5 GB disk alanına ihtiyaç duyuluyor.
Network gereksinimleri:
- Her düğümde en az iki adet network kartı bulunmalıdır. Kurulum politikanıza göre bu değişebilir. Ben 3adet network kartı tanımlayım 2'sinde bond işlemi uygulayacağım.Public ve private ağlar iççin kullanacağız bu network kartlarını. Eğer Depolama işlemini de network üzerinde bulunan (NAS) bir storage aracılığı ile yapacaksak bir network kartı daha tanımlamalıyız. Network interfacelerin isimleri ik düğümde de aynı olmalıdır. Eğer Node1'de public network için Eth0'ı kullandıysak; Node2'de de böyle olmalıdır.
IP gereksinimleri
- iki düğüm için Public IP adresleri
- iki düğüm için Virtual IP adresleri
- SCAN IP adresleri
- Private network adresleri
Yeri gelmişken Single Client Access Name kavramına bir göz atalım
SCAN nedir?
İstemcilerin Cluster'a erişimini sağlayan sanal bir network arayüz yöneticisidir. SCAN farklı 3 adet IP adresine sahip olmakla birlikte 3ününde adı aynıdır ve cluster ismimizle aynıdır. Scan listener ve local listenerlar farklı kavramlardır. İstemciler bir bağlantı talebinde bulunur; Bu istemciye vekaleten SCAN ıp adres üzerinden dinlemede olan scan listener tarafından bu talep karşılanmaktadır.
Yani Clusterware ortamında SCAN ismiyle sanal IP ler oluşturulur ve nodelar üzerine atanır.Load balancing ve Failover ayarlarına göre node'lar üzerinde gerektiği zaman yer değiştirebilir SCAN listenerlar.İstemciler bu IPleri kullanarak veritabanına bağlanırlar. Cluster içindeki tüm servisler SCAN listenera kayıtlıdır. İstemciye vekalet eden scan bu bağlantı talebini yükü en az olan node'a iletir.SCAN IP ler Cluster ortamında hizmet verir ancak Virtual IP ile tamamen farklıdır birbirinden. VIP adresi ; SCAN sonucu sağlanan cluster servisleri aracılığı ile istemcinin o düğümde açtığı oturumu sağlayan ve yöneten Public IP adresidir. Ve aslında local listeneri işaret etmketedir. Düğümlerde yer alan listener.ora dosyasında HOST parametresi olduğunu hatırlayalım. VIP adresi burda kullanılmaktadır işte.
Şimdi VirtualBox Üzerinde Sanal Makinelerimizi Oluşturmaya başlayarak RAC kurulumumuza ilk adımı atalım.
1) VirtualBox Üzerinde Sanal Sunucunun Oluşturulması
VirtualBox üzerinde bir sanal sunucu oluşturduktan sonra üzerine oracle Enterprise Linux kuracağız.
VirtualBox'da new sekmesine tıklayarak yeni bir sanal sunucu oluşturuyoruz. Makinemizin Adını İşletim sistemimizi ve versiyonunu seçtikten sonra next ile ilerliyoruz.
Bir sonraki adımda makinemizin memory değerini belirliyoruz. 2,5GB oracle ve gridin çalışması için gereken minimum ram miktarıdır. Biz bundan fazla bir ram atayarak devam ediyoruz
Bu adımda Makinemiz için sabit disk ayarlarını yapmamızı istiyor bizden.virtual harddisk oluşturup makinemize attach edeceğiz.Bu harddisk sadece işletim sistemi için kullanacağımız disk olacak. Oracle RAC için kullanacağımız diskleri sonradan ekleyeceğiz.Create'e tıklayıp gelen sonraki adımda harddisk tipini vdi olarak seçip dynamical allocate olarak belirliyoruz.
Bu adımda eklediğimiz sanal harddiskin boyutunu belirliyoruz. 40 GB işimizi görebilecek büyüklükte bir harddisk olacaktır.Create diyoruz ve artık makinemiz hazır. Bir sonraki adımda virtualboxta makinemiz üzerine tıklayıp settings'e tıklayarak network ayarlarını yapacağız.
Şekildeki gibi 4 network adapter'i de aktif hale getiriyorum. Networkumun dış dunyadan bağımsız olmasını istediğim için host-only seçiyorum. Yani makinemiz dış networku görmeyecek. Local kurulum senaryoma göre böyle olmasını uygun buluyorum.
Bu aşamadan sonra sanal makinemizi start ettiğimizda artık üzerine Oracle Enterprise Linux'u kurmalıyız. Ben kurulum işlemini daha önceden anlattığım için tekrar anlatmıyorum Bu linkten Linux kurulumunu nasıl yaptığımızı görebilirsiniz.
2)Linux işletim sisteminin RAC kurulumu için Hazır hale getirilmesi
2)Linux işletim sisteminin RAC kurulumu için Hazır hale getirilmesi
# vi /etc/sysctl.conf komutu ile dosyamızı açıp aşağıdaki parametre değerlerini set ediyoruzfs.file-max = 6815744kernel.sem = 250 32000 100 128kernel.shmmni = 4096kernel.shmall = 1073741824kernel.shmmax = 4398046511104net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576fs.aio-max-nr = 1048576net.ipv4.ip_local_port_range = 9000 65500
#vi /etc/security/limits.conf komutuyla dosyamızı açıp aşağıdaki oracle limit değerlerini set ediyoruz. oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768
#vi /etc/pam.d/login
Dosyasına
session required pam_limits.so
Değerini ekliyoruz.
Gerekli olan Rpm paketlerimizi kuruyoruz. # cd /media/cdrom/OEL/Server komutuyla paketlerin bulunduğu dizine gidiyoruz. rpm -Uvh binutils-2.* rpm -Uvh compat-libstdc++-33* rpm -Uvh elfutils-libelf-0.* rpm -Uvh elfutils-libelf-devel-* rpm -Uvh gcc-4.* rpm -Uvh gcc-c++-4.* rpm -Uvh glibc-2.* rpm -Uvh glibc-common-2.* rpm -Uvh glibc-devel-2.* rpm -Uvh glibc-headers-2.* rpm -Uvh ksh-2* rpm -Uvh libaio-0.* rpm -Uvh libaio-devel-0.* rpm -Uvh libgcc-4.* rpm -Uvh libstdc++-4.* rpm -Uvh libstdc++-devel-4.* rpm -Uvh make-3.* rpm -Uvh sysstat-7.* rpm -Uvh unixODBC-2.* rpm -Uvh unixODBC-devel-2.*
Grup ve Kullanıcılarımızı oluşturacağız ve kurulum dizinlerini oluşturacağız.
# groupadd -g 501 oinstall
# groupadd -g 502 dba
# useradd -u 502 -g oinstall -G dba,asmdba,oper oracle# passwd oracle# mkdir -p /u01/app/11.2.0.3/grid
# mkdir -p /u01/app/oracle/product/11.2.0.3/db
# chmod -R 775 /u01/
# chown -R oracle:oinstall /u01/
# vi /etc/hosts dosyamızı açıyoruz. Bu dosyaya ıp kayıtlarımızı gireceğiz. Bu aşamada IP gereksinimlerini hatırlatıyorum. Ve hangi IP'yi ne için kullandığımı yorum olarak yazıyorum # Local 127.0.0.1 localhost.localdomain.com localhost # Public sunucularımızın public networkle haberleşmesi icin 192.168.56.110 racnode1.veys.com racnode1 192.168.56.111 racnode2.veys.com racnode2 # Virtual vip IP kullanımını yukarıda acıklamıstık 192.168.56.131 racnode1-vip.veys.com racnode1-vip 192.168.56.132 racnode2-vip.veys.com racnode2-vip # Private sunucuların kendiaralarında haberlesmeleri icin 192.168.10.141 racnode1-priv.veys.com racnode1-priv 192.168.10.142 racnode2-priv.veys.com racnode2-priv
Burada dikkatimizi çekmesi gereken nokta SCAN IP'lerin hosts dosyasına yazılmayışıdır. Scan ip'ler için DNS kaydı oluşturmamız gerekiyor. Round-robin DNS sunucumuzu kendi localimizde nasıl konfigure edeceğimizi anatacağım. Kurulum senaryomuza göre Bir DNS server'ımız olacak ve Scan kayıtları bu DNS server'ımızdan okunacak. O halde şimdi bir linux işletim sistemini DNS olarak nasıl konfigure edebiliriz bu adımda onu inceleyelim.
ORACLE Linux'un DNS Server olarak konfigüre edilmesi:
İlk olarak gerekli paketlerimizi yüklemeliyiz. Root kullanıcısı ile login oluyoruz ve şu paketleri yüklüyoruz.
# cd /media/OEL/Server
# rpm -Uvh bind-9.3.3-7.el5.i386.rpm
# rpm -Uvh bind-chroot-9.3.3-7.el5.i386.rpm
# rpm -Uvh bind-devel-9.3.3-7.el5.i386.rpm
# rpm -Uvh bind-libbind-devel-9.3.3-7.el5.i386.rpm
# rpm -Uvh bind-libs-9.3.3-7.el5.i386.rpm
# rpm -Uvh bind-sdb-9.3.3-7.el5.i386.rpm
# rpm -Uvh system-config-bind-4.0.3-2.el5.noarch.rpm
# rpm -Uvh caching-nameserver-9.3.3-7.el5.i386.rpm
# rpm -Uvh postgresql-libs-8.1.4-1.1.i386.rpm
Sunucumuza veridiğimiz IP'yi kontrol ediyoruz.
# ifconfig
Ben Public IP'mi 192.168.56.110 olarak belirlemiştim
Daha sonra konfigüre etmek zorunda olduğumuz 4 Adet dosyamız var.
named.conf dosyasını sample named.caching-nameserver.conf dosyasından oluşturuyoruz.
# cd /var/named/chroot/etc/
# ls
localtime named.caching-nameserver.conf named.rfc1912.zones rndc.key
# cp named.caching-nameserver.conf named.conf
Daha sonra named.conf dosyasını açarak sistemimize göre konfigüre ediyoruz.
options {
listen-on port 53 { 192.168.56.110; };
# listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { 192.168.56.110; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
Bir sonraki adımda named.rfc1912 dosyamızı konfigüre ediyoruz.
zone "." IN {
type hint;
file "named.ca";
};
zone "veys.com" IN {
type master;
file "forward.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "56.168.192.in-addr.arpa" IN {
type master;
file "reverse.zone";
allow-update { none; };
};
..
Dosya içeriklerinde kırmızı ve bold olarak işaretlediğim yerleri kendi sisteminizin özelliklerine göre değiştirmelisiniz. IP adresiniz ve domain name'iniz önemlidir bu noktada.
Dosyalarımızın izinlerini değiştiriyoruz.
# chgrp named named.conf
# chgrp named named.rfc1912
Daha sonra
# cd /var/named/chroot/var/named
# cp localdomain.zone forward.zone
# cp named.local reverse.zone
forward.zone dosyamızı aşağıdaki gibi düzenliyoruz.
# vi forward.zone
$TTL 86400
@ IN SOA racnode1.veys.com. root.racnode1.veys.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS racnode1.veys.com.
racnode1 IN A 192.168.56.110
racnode2 IN A 192.168.56.111
racnode1-vip IN A 192.168.56.131
racnode2-vip IN A 192.168.56.132
rac-scan IN A 192.168.56.166
rac-scan IN A 192.168.56.167
rac-scan IN A 192.168.56.168
reverse.zone dosyamızı aşağıdaki gibi konfigure ediyoruz.
$TTL 86400
@ IN SOA racnode1.veys.com. root.racnode1.veys.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS racnode1.veys.com.
110 IN PTR racnode1.veys.com.
111 IN PTR racnode2.veys.com.
131 IN PTR racnode1-vip.veys.com.
132 IN PTR racnode2-vip.veys.com.166 IN PTR rac-scan.veys.com.
167 IN PTR rac-scan.veys.com.
168 IN PTR rac-scan.veys.com.
Dosyaların izinlerini değiştiriyoruz
# chgrp named reverse.zone
# chgrp named forward.zone
# vi /etc/resolve.conf dosyamızı açıp içeriğini
search veys.com
namedserver 192.168.56.110
olarak değiştiriyoruz.
# service named start
komutuyla named servisini başlatıyoruz .
#chkconfig named on
açılış esanısında servisin başlamasını istiyoruz.
# nslookup rac-scan
komutuyla dns serverın hizmet verip vermediğini kontrol ediyoruz. Sorunsuz şekilde konfigure ettiysek
kayıtlarımızdak scan ip değerlerini bize döndürmesi lazım bu komutun.
NTP'nin devre dışı bırakılması
Oracle RAC üye node'lar arasında senkronize çalışması önemli bir ayrıntıdır. Yani tarih ve saatler senkron olmalıdır. Bunu iki türlü sağlayabiliyoruz. Ya ntp'yi konfigüre edip zaman bilgisini network üzerinden alırız. Ya da ntp'yi Devre dışı bırakıp senkron işlemini Oracle Cluster Time Synchronization Service'e bırakmak(ctssd).
Biz ntp yi devre dışı bırakıyoruz. Bunun için
# /sbin/service ntpd stop
# chkconfig ntpd off
# rm /etc/ntp.conf
Network arayüzlerine IP'lerin verilmesi ve Linux üzerinde bond işlemi.
Üyeler üzerindeki network kartlarına aşağıda listelediğim IP'leri set edeceğim
Üye 1
Public Interface (Bond0)
IP Adresi : 192.168.56.110
Alt Ağ Maskesi : 255.255.255.0
Varsayılan Ağ Geçidi : 192.168.56.1
Virtual Interface (Bond0 üzerine otomatik bind edilecek)
IP Adresi : 192.168.56.131
Private Interface 1 (eth2 )
IP Adresi : 192.168.10.141
Alt Ağ Maskesi : 255.255.255.0
Üye 2
Public Interface (Bond0)
IP Adresi : 192.168.56.111
Alt Ağ Maskesi : 255.255.255.0
Varsayılan Ağ Geçidi : 192.168.56.1
Virtual Interface (Bond0 üzerine otomatik bind edilecek)
IP Adresi : 192.168.56.132
Private Interface 1 (eth2 )
IP Adresi : 192.168.10.142
Alt Ağ Maskesi : 255.255.255.0
Oracle SCAN IP (Aynı isimle 3 farklı IP adresi DNS Sunucumuza kayıt edilecek)
DNS Kayıt İsmi : kryrac-scan
IP Adresi : 192.168.56.166
DNS Kayıt İsmi : kryrac-scan
IP Adresi : 192.168.56.167
DNS Kayıt İsmi : kryrac-scan
IP Adresi : 192.168.56.168
racnode1'de
Bond işlemini yapmak için
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
dosyamızı oluşturuyoruz ve aşağıdaki gibi düzenliyoruz.
DEVICE="bond0"
IPADDR=192.168.56.110
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=192.168.56.110
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=6 miimon=100"
eth0'ın içeriğini düzenliyoruz.
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=XX:XX:XX:XX:XX:XX // buraya mac adresimizi yazmalıyız,zaten yazılı gelmeli
DEVICE="eth0"
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=XX:XX:XX:XX:XX:XX
DEVICE="eth1"
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
eth2'ın içeriğini düzenliyoruz.
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
HWADDR=XX:XX:XX:XX:XX:XX
DEVICE="eth2"
IPADDR=192.168.10.141
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
DEFROUTE=no
# vi /etc/modprobe.d/bonding.conf Dosyasını acarak aşağıdaki satırları ekliyoruz
alias bond0 bonding
alias netdev-bond0 bonding
# vim /etc/rc.d/rc.local dosyamızı açarak gateway adresimizi ekliyoruz
/sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.56.1
# service network restart
# shutdown -r now
Şimdi ise sunucumuza oracleasm paketlerini yükleyip asm konfigürasyonunu gerçekleştireceğiz.
# cd /media/cdrom/OEL/Server Rpmpaketlerinin bulunduğu dizine gidiyoruz.
oracleasm-support-2.1.7-1.el5.i386.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-[your-kernel-version].rpm
paketlerini yüklememiz gerekiyor.Kernel versiyonumuza uygun paketi Bu linkten download edebiliriz.
Bu aşamaya kadar dikkat ettiyseniz tüm işlemleri tek node üzerinde yaptık. Kurulum için bize bir sunucu daha lazım, buraya kadar yaptığımız işlemler iki sunucuda ortak işlemlerdi. O yüzden sanal makinemizin bir kopyasını alıp ikinci node olarak konfigüre etmek mantıklı ve kolay olacaktır. ASM konfigürasyonu sırasında yapılacak işlemlerden bazıları tek node üzerinde gerçekleştirilmelidir.Aksi takdirde kurulum sırasında hata alacağız.
O yuzden racnode1 sanal makinemizi kapatıp Virtualbox'ta üzerine sağ tıklayarak clone'unu alıyoruz.
Paylaşımlı disklerin (Shared Storage) oluşturulması
Bu işlemi windows ortamında komut satırından yapacağız. 2adet paylaşımlı disk oluşturacağız,bir tanesi veri dosyalarımız için diğeri de log dosyalarımız için. Disk sayısını ve boyutunu ihtiyacınıza göre belirleyebilirsiniz ben örnek olması açısından 2disk oluşturuyorum.
Disklerim için bir klasör oluşturuyorum.Ve bu dizine gidiyorum
mkdir VirtualBoxStorage
cd VirtualBoxStorage
mkdir sharedStorage
cd sharedStorage
Daha sonra VBoxManage aracını kullanarak asm1 ve asm2 adında iki tane disk yaratıyorum
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename asm1.vdi --size 10000 --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename asm2.vdi --size 10000 --format VDI --variant Fixed
Oluşturmuş olduğum ikitane Shared storage'i NODE1OELs makineme bağlıyorum.
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "NODE1OELs" --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm1.vdi --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "NODE1OELs" --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm2.vdi --mtype shareable
Bu işlemleri 2.sunucumuz içinde yapacağız ancak Disklerimizi partitionlara ayırıp daha sonra 2.sunucumuza attach edeceğim. Şimdilik sadece 1.sunucumuza bağlıyoruz.
1.sunucumuzda terminal ekrana bağlanıyoruz ve aşğıdaki komutla disklerimizi kontrol ediyoruz.
Disklerimizi görüp görmediğini kontrol ediyoruz.
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc
sda işletim sisteminin kurulu olduğu disk , sdb ve sdc sonradan attach ettiğim shared-storage diskler.
disklerimiz fdisk komutuyla formatlayarak partition oluşturacağız.
# fdisk /dev/sdb komutundan sonra sırasıyla aşağıdaki komutları giriyoruz.
n
p
1
[enter]
[enter]
w
n - new partition
p- primary partition
1-partition number
w- read partition table
Aynı işlemi /dev/sdc için de yapıyoruz.
Daha sonra oracleasm'yi node 1 için konfigüre ediyoruz.
Bunun için;
[root@racnode1 ~]# /etc/init.d/oracleasm configure -I komutunu çalıştırıyoruz.
Gelen değişkenleri şekildeki gibi dolduruyoruz,driver için kullanıcı ve grup bilgilerini girmiş oluyoruz bu aşamada.
Daha sonra oluşturduğumuz partitionları ASM diski olarak işaretleyeceğiz ve böylece ASM disklerimiz oluşmuş olacaktır.
(Yukarıdaki Disk partition ve şimdi yapacağım ASM disk oluşturma işlemlerin Sadece 1 node'da yapacağımı unutmayalım.)
daha sonra sistemin asm diskleri tekrar scan etmesi için
# oracleasm scandisks komutunu giriyorum
#oracleasm listdisks dediğim zaman ASM diskleri listelenecektir.
Bu adıma kadar Tüm işlemlerimizi ROOT kullanıcısı ile gerçekleştirdik. şimdi ise oracle kullanıcısı ile login olup .bash_profile dosyasını düzenleyelim ve bu adımla birlikte 1.Sunucumuz kuruluma hazır olacak .
#vi .bash_profile ile dosyamızı açıyoruz ve aşağıdaki içerği kopyalayıp yapıştırıyoruz.
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=racnode1.veys.com; export ORACLE_HOSTNAME
ORACLE_UNQNAME=rac; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=rac1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$BASE_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
alias grid='. /home/oracle/.grid'
alias db='. /home/oracle/.db'
Dosyamızı kaydedip çıktıktan sonra Grid degiskenleri için asagidaki dosyamizi olusturuyoruz.
# vi /home/oracle/.grid
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_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
Database degiskenleri için asagidaki dosyamizi olusturuyoruz.
# vi /home/oracle/.db
ORACLE_SID=rac1; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_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
Racnode1 sunucusu oracle Rac kurulumu için hazır hale geldi. Şimdi 2.sunucumuza bakalım. Hatırlarsanız asm konfigurasyonu yapmadan önce klonunu almıştık 1.sunucumuzun. Şimdi o sanal makinemizi çalıştırıyoruz.Ancak çalıştırmadan once windows komut satırından Shared storagelerimizi bu sunucuya da attach etmeliyiz. cmd ekranına girip
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "NODE1OELs Clone" --storagectl "SATA" --port 1 --device 0 --type hdd --medium asm1.vdi --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "NODE1OELs Clone" --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm2.vdi --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "NODE1OELs Clone" --storagectl "SATA" --port 2 --device 0 --type hdd --medium asm2.vdi --mtype shareable
Bu komutları girerken iki sunucumuzda kapalı olmalı.
Diskleri ekledikten sonra sunucumuzu açıp sırasıyla
hostname ini düzelteceğiz
IP lerini düzelteceğiz
Asm konfig yapacağız
.bash_profile'ını tanımlayacağız.
# vi /etc/sysconfig/network komutuyla dosyamızın içine girip hostname'i racnode2.veys.com olarak değiştiriyoruz
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
ip adresini 192.168.56.111 olarak değiştryoruz
# vi /etc/sysconfig/network-scripts/ifcfg-eth2
ip adresini 192.168.10.142 olarak değiştiryoruz
Asm konfigurasyonunu yapıyoruz
node1 de yaptığımız işlemin aynısını yapacağız yukarda anlatmıştım.
# service network restart
diyerek ipleri almasını sağlıyoruz.
#vi .bash_profile ile dosyamızı açıyoruz ve aşağıdaki içerği yapıştırıyoruz.
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=racnode2.veys.com; export ORACLE_HOSTNAME
ORACLE_UNQNAME=rac; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=rac2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$BASE_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
alias grid='. /home/oracle/.grid'
alias db='. /home/oracle/.db'
Dosyamızı kaydedip çıktıktan sonra Grid degiskenleri için asagidaki dosyamizi olusturuyoruz.
# vi /home/oracle/.grid
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_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
Database degiskenleri için asagidaki dosyamizi olusturuyoruz.
# vi /home/oracle/.db
ORACLE_SID=rac2; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$BASE_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
Artık sunucularımız kurulum için hazır. Sonraki paylaşımda kurulum adımlarını inceleyeceğiz.iyi çalışmalar.
0 yorum:
Yorum Gönder