
Oracle RAC Kurulumu için En az 2 adet node (Oracle Linux makinesi) sonrasında ise, eger Rac 2 nodlu ise bu 2 nodunda gorebilceği bir storage yapısının olması gerekmektedir. Kabataslak olarak mimariyi resmedecek olursak;

Bizim Kuracağımız yapı için 2 adet node bir adet storage server (openfiler) olacak ve Network IP yapılandırmamız da aşağıdaki gibi yapılandırılacaktır.
(Openfiler kurulumu için /https://www.farukcevik.com.tr/openfiler-kurulumu/)
- Public IP Block 150.150.100.X Mask /24
- Private IP Blok 120.120.100.X Mask /24
- Storage Server (Open Filer) 150.150.100.50
- Rac1 150.150.100.10 rac1.frkcvk.com rac1
- 120.120.100.151 rac1-priv.frkcvk.com rac1-priv
- 150.150.100.12 rac1-vip.frkcvk.com rac1-vip
- Rac2 150.150.100.11 rac2.frkcvk.com rac2
- 120.120.100.152 rac2-priv.frkcvk.com rac2-priv
- 150.150.100.13 rac2-vip.frkcvk.com rac2-vip
- SCAN
- 150.150.100.14 scan-frkcvk.com scan-frkcvk
- 150.150.100.15 scan-frkcvk.com scan-frkcvk
- 150.150.100.16 scan-frkcvk.com scan-frkcvk
İki adet Oracle Linux 7.4 Kurulumu yapıldı
rac1 nodu için ayarlamaları yapıyoruz daha sonra aynı konfigurasyonu rac2 nodu içinde yapacağız.
rac1 nodumuzu kuruluma hazılayalım, öncelikle IP ayarlarının doğru yapıldığını varsayarak devam ediyorum.
preinstall paketimi yüklüyorum bu paket oracle kullanıcı, group ayarlarını, rpm paketlerini kernel parametrelerini ve Dependency leri benim için ayarlayacak.
yum install -y oracle-database-preinstall-19c
yum update -y
Eger internetimiz yok ise bu işlemleri el ile bizim ayarlamamız gerekmektedir.
Oracle user password ayarını yapıyoruz.
passwd oracle
Host dosyamızı ayarlıyoruz.
vi /etc/hosts
150.150.100.10 rac1.frkcvk.com rac1
120.120.100.151 rac1-priv.frkcvk.com rac1-priv
150.150.100.12 rac1-vip.frkcvk.com rac1-vip
150.150.100.11 rac2.frkcvk.com rac2
120.120.100.152 rac2-priv.frkcvk.com rac2-priv
150.150.100.13 rac2-vip.frkcvk.com rac2-vip
150.150.100.14 scan-frkcvk.com scan-frkcvk
150.150.100.15 scan-frkcvk.com scan-frkcvk
150.150.100.16 scan-frkcvk.com scan-frkcvk
Selinux u disabled yapıyoruz
vi /etc/selinux/config
....
SELINUX=disabled
....
Firewallı kapatyoruz
systemctl stop firewalld
systemctl disable firewalld
Bir Oracle RAC veritabanı oluşturmak için paylaşılan depolama ve SCAN adresleri için bir DNS sunucusu gerekir. Bunun için birkaç yöntem kullanılabilir bir DNS serverimiz yok o yüzden çok kötü bir yol olsada her noda dnsmaq kullanarak bu sorunun üzerinden geleceğiz.
yum install dnsmasq
systemctl start dnsmasq
systemctl status dnsmasq
● dnsmasq.service - DNS caching server.
Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; vendor preset: dis abled)
Active: failed (Result: exit-code) since Sat 2020-10-17 19:55:10 +03; 7s ago
Process: 24514 ExecStart=/usr/sbin/dnsmasq -k (code=exited, status=2)
Main PID: 24514 (code=exited, status=2)
Oct 17 19:55:10 rac1.frkcvk.com systemd[1]: Started DNS caching server..
Oct 17 19:55:10 rac1.frkcvk.com systemd[1]: Starting DNS caching server....
Oct 17 19:55:10 rac1.frkcvk.com dnsmasq[24514]: dnsmasq: failed to create listening ...e
Oct 17 19:55:10 rac1.frkcvk.com systemd[1]: dnsmasq.service: main process exited, c...NT
Oct 17 19:55:10 rac1.frkcvk.com systemd[1]: Unit dnsmasq.service entered failed state.
Oct 17 19:55:10 rac1.frkcvk.com systemd[1]: dnsmasq.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
dnsmasq alışmıyor araştırmam sonucu /etc/dnsmasq.conf içerisine aşağıdaki iki satırı eklememiz gerekiyor.
except-interface=virbr0
bind-interfaces
systemctl restart dnsmasq
systemctl status dnsmasq
● dnsmasq.service - DNS caching server.
Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2020-10-17 20:56:47 +03; 5s ago
Main PID: 25311 (dnsmasq)
CGroup: /system.slice/dnsmasq.service
└─25311 /usr/sbin/dnsmasq -k
Oct 17 20:56:47 rac1.frkcvk.com dnsmasq[25311]: listening on lo(#1): ::1
Oct 17 20:56:47 rac1.frkcvk.com dnsmasq[25311]: started, version 2.76 cachesize 150
.........
dnsmasq.conf dosyasına bizim oluştıuracağımız bir dosyayı işaret edecek şekilde ayarlayacağız ve SCAN name lerimizin çözümlenmesini sağlayacağız. Bunun için /etc/racdns dosyasını oluşturuyoruz içerisine SCAN IP ve isimlerini yazıyoruz.
vi /etc/racdns
#SCAN
150.150.100.14 scan-frkcvk.com scan-frkcvk
150.150.100.15 scan-frkcvk.com scan-frkcvk
150.150.100.16 scan-frkcvk.com scan-frkcvk
Şimdi /etc/dnsmasq.conf dosyasını /etc/racdns dosyasını işaret etmesi için /etc/dnsmasq.conf içerisine aşağıdaki satırı ekliyoruz.
addn-hosts=/etc/racdns
Sonrasında ise /etc/resolc.conf dosyası ile ilgili problemi çözeceğiz.
cat /etc/resolv.conf
# Generated by NetworkManager
search frkcvk.com
nameserver 8.8.8.8
Bu dosyayı aşağıdaki gibi düzenliyoruz.
# Generated by NetworkManager
nameserver 127.0.0.1
search frkcvk.com
nameserver 8.8.8.8
Network her başlatılıdığında veya makine reboot olduğunda yeniden oluşturuyor, bu nedenle dosyayı yazma kormalı yapıyoruz.
chattr +i /etc/resolv.conf
[root@rac1 ~]# nslookup scan-frkcvk.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: scan-frkcvk.com
Address: 150.150.100.16
Name: scan-frkcvk.com
Address: 150.150.100.14
Name: scan-frkcvk.com
Address: 150.150.100.15
[root@rac1 ~]# nslookup scan-frkcvk
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: scan-frkcvk
Address: 150.150.100.16
Name: scan-frkcvk
Address: 150.150.100.14
Name: scan-frkcvk
Address: 150.150.100.15
DNS problemi bu node için çözüldü. Şimdi directorlerimizi oluşturuyoruz.
mkdir -p /u01/app/oracle/product/19.3.0.0/db
mkdir -p /u01/app/19.3.0.0/grid
chown -R oracle:oinstall /u01
chmod -R 775 /u01
su - oracle
Ortam değişkenlerini set ediyoruz.
vi .setEnv
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac1.frkcvk.com
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/19.3.0.0/grid
export DB_HOME=$ORACLE_BASE/product/19.3.0.0/db
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
alias grid_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'
vi .db_env
export ORACLE_SID=racdb1
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
vi .grid_env
export ORACLE_SID=+ASM1
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
Stroge server tarafından disk yapılandırması için çok güvenilir olmasada burada test için openfiler kullandım openfiler dan iscsi disk yapılandırması yazımızı uyguluyoruz https://www.farukcevik.com.tr/oracle-linux-iscsi-disk-ekleme-openfiler/
Aynı adımları node2 içinde tekrarlıyorum.
Bundan sonraki disk yapılandırmamızı sadece tek bir nodda yapıyoruz.
- Oracle ASM Library” kullanarak disklerimizi ASM için yapılandırıp damgalayacağız.
- ASM için oluşturacağımız disk grubundaki diskler birebir aynı boyutta olmalıdır. Ayrıca disklerimiz kesinlikle formatlanmamış ve kullanılmamış olmalıdır.
- https://www.oracle.com/linux/downloads/linux-asmlib-rhel7-downloads.html
rpm -ivh oracleasm*
disklerimiz
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─ol_rac1-root 249:0 0 91.1G 0 lvm /
└─ol_rac1-swap 249:1 0 7.9G 0 lvm [SWAP]
sdb 8:16 0 16G 0 disk
sdc 8:32 0 16G 0 disk
sr0 11:0 1 1024M 0 rom
sdb ve sdc diskleri ISCSI ile baglı ortak ASM diskleri olacak, onları biçimlendiriyoruz.
[root@rac1 tmp]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x51f67548.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-33554431, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-33554431, default 33554431):
Using default value 33554431
Partition 1 of type Linux and of size 16 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Tekrak bakıyoruz disklerimiz paritionlı hale geldimi
[root@rac1 tmp]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─ol_rac1-root 249:0 0 91.1G 0 lvm /
└─ol_rac1-swap 249:1 0 7.9G 0 lvm [SWAP]
sdb 8:16 0 16G 0 disk
└─sdb1 8:17 0 16G 0 part
sdc 8:32 0 16G 0 disk
└─sdc1 8:33 0 16G 0 part
sr0 11:0 1 1024M 0 rom
Oracleasm , yapılandırıp disklerimizi oraclasm ile damgalayacağız.
[root@rac1 tmp]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@rac1 tmp]# oracleasm init
oracleasm disklerimizi oluşturuyoruz
oracleasm createdisk DATA1 /dev/sdb1
oracleasm createdisk DATA2 /dev/sdc1
kontrol edelim;
ll /dev/oracleasm/disks/
total 0
brw-rw----. 1 oracle dba 8, 17 Oct 17 22:35 DATA1
brw-rw----. 1 oracle dba 8, 33 Oct 17 22:35 DATA2
Şimdi grid yazılımının kurulumuna geçebiliriz.
/u01/app/19.0.0.0/grid
./gridSetup.sh




add diyerek diğer nodu ekliyoruz,

ssh connectivity kısmından şifremizi girip setup diyoruz ve test ediyoruz.










Buradaki Hataları Ignore edip geçiyorum .


Ok ve next ile devam ediyoruz.

Cluster çalışıyor mu? kontrol edelim.
ora.LISTENER.lsnr
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.chad
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.net1.network
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.ons
ONLINE ONLINE rac1 STABLE
ONLINE ONLINE rac2 STABLE
ora.proxy_advm
OFFLINE OFFLINE rac1 STABLE
OFFLINE OFFLINE rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
1 ONLINE ONLINE rac2 STABLE
2 ONLINE ONLINE rac1 STABLE
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE rac1 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE rac2 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE rac2 STABLE
ora.OCR.dg(ora.asmgroup)
1 ONLINE ONLINE rac2 STABLE
2 ONLINE ONLINE rac1 STABLE
ora.asm(ora.asmgroup)
1 ONLINE ONLINE rac2 Started,STABLE
2 ONLINE ONLINE rac1 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
1 ONLINE ONLINE rac2 STABLE
2 ONLINE ONLINE rac1 STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE rac2 STABLE
ora.qosmserver
1 ONLINE ONLINE rac2 STABLE
ora.rac1.vip
1 ONLINE ONLINE rac1 STABLE
ora.rac2.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan1.vip
1 ONLINE ONLINE rac1 STABLE
ora.scan2.vip
1 ONLINE ONLINE rac2 STABLE
ora.scan3.vip
1 ONLINE ONLINE rac2 STABLE
crsctl check cluster -all
**************************************************************
rac1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
rac2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
srvctl status nodeapps
VIP 150.150.100.12 is enabled
VIP 150.150.100.12 is running on node: rac1
VIP 150.150.100.13 is enabled
VIP 150.150.100.13 is running on node: rac2
Network is enabled
Network is running on node: rac2
Network is running on node: rac1
ONS is enabled
ONS daemon is running on node: rac2
ONS daemon is running on node: rac1
[oracle@rac1 ~]$
ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84348
Available space (kbytes) : 407336
ID : 218152433
Device/File Name : +OCR
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
Şimdi database yazılımı kurup ardından, dbca ile database kurlumunu yapacağız.
/u01/app/oracle/product/19.3.0.0/db
./runInstaller











Ve kurulum başarı ile tamamlandı, simdi asmca komutu ile databasede kullanılacak disklerimizi yapılandıracağız.
asmca



şimdi dbca ile atabase oluşturalım.
. .setEnv
. .db_env
dbca
















Bir yanıt yazın