Oracle Real Application Cluster, Kesintisiz bir veri tabanı erişmi için hazırlanmış paylaşımlı disk teknolojisini kullanan birden fazla sunucunun tek bir hizmet için çalıştığı küme yapısıdır. Minimum iki sunucu ile çalışan bu yapı sayesinde üretim ortamları maksimum verimde kesintisiz hizmeti hedefler.
Bugünkü yazımızda yukarıda özetlediğimiz üzere Oracle Database 19C , High Availability çözümlerinden Real Application Clusters ( RAC ) kurulumunu anlatacağım. Kurulumumuz Oracle Linux 8 üzerinde olacak.
Real Application Cluster kurulumu için iki adet Oracle Linux işletim sistemi , bu işletim sistemlerine bağlı iki adet ethernet kartı ve yine her iki işletim sistemininde görebileceği paylaşımlı disk kullanacağız.
Kurulum adımlarımız dört aşamalı olacak;
- Oracle Linux 8 İşletim Sisteminin hazırlanması
- Real Application Cluster & Grid Ortamının Hazırlanması
- Real Application Cluster & Grid Kurulumu
- Orace Database 19C kurulumu
Bölüm -1 İşletim sistemi kurulumu
.ISO dosyasımızı mount ederek kurulumumuza ” Install Oracle Linux 8.2 ” seçeneği ile başlıyoruz.
İşletim sistemi için dilimizi seçiyoruz. Veri tabanı çalıştıracağımız için olduğu gibi bırakıyorum ve ” Continue ” ile devam ediyorum.
İşletim sistemi için konfigürasyonlarımı yapacağım. Aşağıda açılan ekrandan ilk olarak klavye dilimi seçeceğim
” + ” butonu ile ekleyeceğim klavyeleri görüyorum
Arama kısmına ekleyeceğiniz klavyeyi yazarak filtreleme yapabilirsiniz. Ben Türkçe klavye kullanacağım için ” Turkish ” diyerek ” Add ” butonuna ile ekliyorum.
Yukarı butonu ile eklediğim klavyeyi üst tarafa alıyorum. Bu sayede varsayılan klavye ” Turkish ” olacak. İsterseniz ” – ” butonu ile kullanmayacağınız klavyeleri kaldırabilirsiniz.
” Done ” butonu ile bir önceki ekrana dönüş yapıyorum.
İşletim sistemi Tarih & saat ayarlarımı yapacağım. Cluster sistemler için bu önemlidir. Time & Date kısmına giriyorum.
Açılan ekrandan lokasyonumu seçiyorum ve Done butonu ile geri dönüyorum.
Software Selection menüsüne giriyorum. Burada ek uygulamaları kuracağız.
Altta bulunan kısımları ekliyoruz ve Done diyerek geri dönüyoruz.
- Server with Gui
- Development Tools
- Graphical Administration Tools
- System Tools
Şimdi Disklerimi oluşturacağız. Installation Destination menüsüne giriyoruz.
Aşağıdaki gibi çalışacağımız disk ve Custom seçili olacak şekilde Done diyoruz.
Click here to create them automatically seçeniği ile kaynağımıza bağlı olarak işletim sistemi için otomatik yapılandırma yapıyoruz.
Disk yapımız otomatik oluştu. Done diyerek devam ediyoruz.
Değişiklikleri kabul etmek için ” Accept Changes ” diyoruz.
Artık son adımlardayız. İşletim sistemi kurulumu için ” Begin Installation ” diyoruz.
Root kullanıcısı için ve yeni bir kullanı için parola tanımları yapıoruz.
İlk olarak root için tanımları yapıyorum. Done diyerek bir önceki ekrana geçiyorum.
User creation bölümüne giriyorum.
Gerekli alanları dolduruyorum ve Done diyorum.
Şuan herşey hazır işletim sisteminin kurulmasını bekliyorum.
Kurulum adımı tamamlandı. Sunucumuzu yeniden başlatıyoruz.
License Information kısmına giriyoruz.
Sözleşmeyi kabul ederek Done diyoruz.
Finish Configuration diyerek kurulumu tamamlıyoruz.
Ekranımız geldi. Not Listed kısmına gerek root olarak giriş yapacağız.
root kullanıcı adımızı giriyoruz.
Parolamızı giriyoruz.
İşletim sistemimiz şuan hazır vaziyette. Yukarıda belirttiğimiz gibi iki adet işletimi kullanmamız gerekiyor. Bu sebeple makalemizin kalan kısmında birinci işletim sistemi için node1.bugraparlayan.local , ikinci işletim sistemi için nod2.bugraparlayan.local isimlerini kullanacağım.
İşletim sistemi hazır olduğuna göre , artık network ve paketlerin düzenlenmesine geçebiliriz.
Öncelikle Network ayarlarımızı yapıyoruz. Bu sayede sunucularım ilgili ip adresi üzerinden erişime açılacak
# Node1 için Public IP tanımlarım
IP Adresi : 192.168.100.130
Subnet : 255.255.255.0
Gateway : 192.168.100.1
# nano /etc/sysconfig/network-scripts/ifcfg-ens160
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=2c37e065-760b-460c-a0eb-6d388b6c7134
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.100.130
PREFIX=24
GATEWAY=192.168.100.1
DNS1=192.168.100.254
# Node2 için Public IP tanımlarım
IP Adresi : 192.168.100.131
Subnet : 255.255.255.0
Gateway : 192.168.100.1
# nano /etc/sysconfig/network-scripts/ifcfg-ens160
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=2c37e065-760b-460c-a0eb-6d388b6c7134
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.100.130
PREFIX=24
GATEWAY=192.168.100.1
DNS1=192.168.100.254
Interconnect bağlantılar için ikinci ethernet kartımızı yapılandırıyoruz.
# Node1 için Private IP tanımlarım
IP Adresi : 172.16.132.130
Subnet : 255.255.255.0
Gateway : 172.16.132.2
#nano /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=e0338812-35e5-48ad-b139-987da44807ed
DEVICE=ens224
ONBOOT=no
IPADDR=172.16.132.130
PREFIX=24
GATEWAY=172.16.132.2
DNS1=172.16.132.2
# Node2 için Private IP tanımlarım
IP Adresi : 172.16.132.130
Subnet : 255.255.255.0
Gateway : 172.16.132.2
#nano /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=e0338812-35e5-48ad-b139-987da44807ed
DEVICE=ens224
ONBOOT=no
IPADDR=172.16.132.131
PREFIX=24
GATEWAY=172.16.132.2
DNS1=172.16.132.2
Her iki sunucumuzada public ve private ip bilgilerini eklediğimize göre network servisimizi yeniden başlatabiliriz.
# systemctl restart NetworkManager.service
Node1 ve Node2 üzerindeki Selinux ‘u kapatıyoruz.
# nano /etc/selinux/config
SELINUX=disable
Node1 ve Node2 üzerindeki Firewall servislerini kapatıyoruz
# systemctl stop firewalld.service
# systemctl disable firewalld.service
NTP yapılandırmamızı node 1 ve node 2 için yapıyoruz ve servisi yeniden başlatıyoruz
nano /etc/chrony.conf
server tr.pool.ntp.org iburst
# systemctl restart chronyd.service
# systemctl enable chronyd.service
Kurulumlar için gerekli olan paketlerimizi yüklüyoruz. preinstall paketi bizim için otomatik olarak öncelikli kullanıcıları oluşturacak.Node1 ve Node2 için çalıştırıyoruz
# yum install oracle-database-preinstall-19c
# yum install oracleasm-support
# reboot
Node1 ve Node2 üzerinde aşağıdaki kullanıcıları oluşturuyorum ve gruplara atıyorum.
# groupadd -g 54333 asmdba
# groupadd -g 54334 asmoper
# groupadd -g 54335 asmadmin
# useradd -m -u 54341 -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid
# usermod -a -G asmdba oracle
# passwd oracle
# passwd grid
Node1 ve Node2 üzerinde aşağıdaki klasörleri oluşturuyorum ve ilgili hakları tanımlıyorum.
mkdir -p /u01/app/grid/19.3.0/gridhome_1
mkdir -p /u01/app/grid/gridbase/
mkdir -p /u01/app/oracle/database/19.3.0/dbhome_1
chown -R oracle.oinstall /u01/
chown -R grid.oinstall /u01/app/grid
chmod -R 775 /u01/
Şimdi profil tanımlarımızı yapacağız. Bu işlem yine Node1 ve Node2 için olacak .
Node 1 üzerindeki ” oracle ” kullanıcısı için .bash_profile tanımlarını yapıyorum.
# nano /home/oracle/.bash_profile
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.bugraparlayan.local
export ORACLE_UNQNAME=BUGRA19C
export ORACLE_BASE=/u01/app/oracle/database/19.3.0/
export DB_HOME=$ORACLE_BASE/dbhome_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=BUGRA19C1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Node 1 üzerindeki ” grid ” kullanıcısı için .bash_profile tanımlarını yapıyorum.
# nano /home/grid/.bash_profile
# Grid Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node1.bugraparlayan.local
export ORACLE_BASE=/u01/app/grid/gridbase/
export ORACLE_HOME=/u01/app/grid/19.3.0/gridhome_1
export GRID_BASE=/u01/app/grid/gridbase/
export GRID_HOME=/u01/app/grid/19.3.0/gridhome_1
export ORACLE_SID=+ASM1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Node2 üzerindeki ” oracle ” kullanıcısu için .bash_profile tanımlarımı yapıyorum.
#nano /home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=node2.bugraparlayan.local
export ORACLE_UNQNAME=BUGRA19C
export ORACLE_BASE=/u01/app/oracle/database/19.3.0/
export DB_HOME=$ORACLE_BASE/dbhome_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=BUGRA19C2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Node2 üzerindeki ” grid ” kullanıcısı için .bash_profile tanımlarımı yapıyorum.
# Grid Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac2.bugraparlayan.local
export ORACLE_BASE=/u01/app/grid/gridbase/
export ORACLE_HOME=/u01/app/grid/19.3.0/gridhome_1
export GRID_BASE=/u01/app/grid/gridbase/
export GRID_HOME=/u01/app/grid/19.3.0/gridhome_1
export ORACLE_SID=+ASM2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Node1 ve Node2 hosts dosyasına aşağıdaki bilgileri ekliyoruz.
# nano /etc/hosts
192.168.100.130 node1 node1.bugraparlayan.local
192.168.100.131 node2 node2.bugraparlayan.local
192.168.100.132 node1-vip node1-vip.bugraparlayan.local
192.168.100.133 node2-vip node2-vip.bugraparlayan.local
192.168.100.134 bgrdb-scan bgrdb-scan.bugraparlayan.local
192.168.100.135 bgrdb-scan bgrdb-scan.bugraparlayan.local
192.168.100.136 bgrdb-scan bgrdb-scan.bugraparlayan.local
172.16.132.10 node1-priv node1-priv.bugraparlayan.local
172.16.132.11 node2-priv node2-priv.bugraparlayan.local
Şuan işletim sistemi ayarlarımızda tamamlandı.
İzninizle burada ufak bir mola ile ilk bölümümüzün sonuna geldiğimiz bu yazı dizimizde kurulumlar için her iki işletim sistemimizide hazır vaziyette. Bundan sonrasında disklerimizi hazırlayacağız ve kurulum adımlarına geçeceğiz.
Tekrar görüşmek dileğiyle,