
Bu yazımızda Oracle ‘ın High Availibitlity çözümü olan Oracle 19c RAC(Real Application Cluster) Kurulumu anlatacağım. Oracle RAC kurulumu ve yönetimi karmaşık olmakla birlikte Cluster mimarisi olarak hala en iyi çözümlerin başında gelmektedir. Grid yapısı sayesinde tüm node lar active active çalışmakta olup doğru yapılandırma ile sistemlerimizde stabil bir veri tabanı yönetimi sunmaktadır. Kurulum işlemleri için ön hazırlıklarımızın doğru yapılması önem taşımaktadır. Kurulum adımları diğer veri tabanlarına göre daha karmaşık olduğu için adım adım anlatmaya çalışacağım.
Install dosyalarını linkten indirebilirsiniz.
Kurulum adımları:
- Sunucuların kurulması- Ön hazırlıkların yapılması
- Grid disklerin yapılandırılması
- Grid kurulumu
- Database software kurulumu
- Disk group create
- Database create
1. Sunucuların Kurulması:
Rac sistemimiz için 2 sunucu kurulumu yapıyoruz. Sunucuların kurulması adımlarını anlatmayacağım. Ben Vmware kullanarak 2 sunucu kurulumu yaptım. İşletim sistemi versionu Oracle Linux 8.3 RAM 8GB (rac kurulumu için minimum olması gereken) ve 1 CPU olarak oluşturdum. Sucularımız üzerindeki ön hazırlıklarımızı ve yapılandırmalarımızı yapalım.
NOT: Aşağıdaki adımlar her 2 sunucuda da çalıştırın.
- sslverify parametresinin değiştirilmesi:
Yum paketlerinin update sırasında ssl hatası almaması için sslveriy=false olarak değiştirin.
[root@localhost ~]# vi /etc/yum.conf[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
sslverify=False- firewall stop ve disable:
systemctl stop firewalld.service
systemctl disable firewalld.service- Update ve oracle-database-preinstall-19c:
yum update -y
yum install -y yum install -y oracle-database-preinstall-19c
yum install oracleasm-support
sysctl –p- Group ların oluşturulması:
[root@rac1 ~]# groupadd -g 54327 asmdba
[root@rac1 ~]# groupadd -g 54328 asmoper
[root@rac1 ~]# groupadd -g 54329 asmadmin- Software dizinlerinin oluşturulması ve yetkilendirme:
[root@rac1 ~]# mkdir -p /u01/app/19c/grid
[root@rac1 ~]# mkdir -p /u01/app/oracle/product/19c/db_1
[root@rac1 ~]# chown -R oracle:oinstall /u01
[root@rac1 ~]# chmod -R 775 /u01/- Oracle Kullanıcısı ile grid ve database profile dosyaları oluşturun.
[oracle@rac1 ~]# vi /home/oracle/.profile_crs#simple profile places /usr/bin at front, followed by /usr/sbin.
#
# Use less(1) or more(1) as the default pager for the man(1) command.
#
# Oracle RDBMS for ASM
ORACLE_HOME=/u01/app/19c/grid; export ORACLE_HOME
ORACLE_SID=+ASM1; export ORACLE_SID
#PS1="[$(hostname)]@\$PWD\$ "; export PS1
export PATH=/usr/bin:/usr/sbin:/u01/app/19c/grid/bin:$ORACLE_HOME/OPatch:/usr/ccs/bin
if [ -f /usr/bin/less ]; then
export PAGER="/usr/bin/less -ins"
elif [ -f /usr/bin/more ]; then
export PAGER="/usr/bin/more -s"
fi[oracle@rac1 ~]# vi /home/oracle/.profile_dbORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/19c/db_1; export ORACLE_HOME
ORACLE_SID=oramg1; export ORACLE_SID
export PATH=/usr/ccs/bin:/usr/bin:/usr/sbin:/u01/app/oracle/product/19c/db_1/OPatch:/u01/app/oracle/product/19c/db_1/bin:$ORACLE_HOME/bin:$PATH
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9; export NLS_LANG
LD_LIBRARY_PATH=/u01/app/oracle/product/19c/db_1/lib/; export LD_LIBRARY_PATH
if [ -f /usr/bin/less ]; then
export PAGER="/usr/bin/less -ins"
elif [ -f /usr/bin/more ]; then
export PAGER="/usr/bin/more -s"
fi
case ${SHELL} in
*bash)
typeset +x PS1="\u@\h:\W\\$ "
;;
esac
- Hosts dosyasına ip-hostname eklenmesi:

- DNS çözümlemesi:
Oracle hostname den çözümlemesi için DNS yapılandırması istemektedir. Prod ortamlarda DNS sunucularımız genellikle ayrı olması gerekir. Benim ortmamım test ortamı olduğu için dnsmasq kurulumu yapacağız. Dns için 1. sunucumuza dnsmasq kurulup config yapılır. Her iki sunucuya da dnsmasq kurulup yedekli bir şekilde çalışması sağlanabilir.
yum install dnsmasq
systemctl start dnsmasq/etc/dnsmasq.conf a aşağıdaki config ekleyin.
local=/localdomain//etc/resolv.conf a aşağıdakileri ekleyin.
nameserver 192.168.36.129
search localdomainSunucumuz reboot olduğunda dosya üzerinde değişiklik olmaması için dosyayı yazma korumalı yapıyoruz.
chattr +i /etc/resolv.confSunuları reboot ediyoruz.
rebootScan adımızın yapılandırmış olduğumuz dns den çözüp çözmediğini kontrol ediyoruz.

Her iki makinede /etc/group dosyasının içindeki oinstall yetkilendirmesi aşağıdaki gibi olmalıdır.

Bu aşamaya kadar sunucularımız üzerinde yapılması gereken işlem adımlarını tamaladık. Grid disklerinin yapılandırılması kısmına geçebiliriz.
2.Grid Disklerin Oluşturulması
Oracle grid mimarisi sayesinde ortak diskler üzerinde eş zamanlı ve hızlı işlemler yapılmasını sağlamaktadır. Grid Disklerin Oluşturulması ve yapılandırılması için tüm sunuculara ortak disk eklenip partition oluşturup damgalama işlemini yapacağız. OCR ve DATA için iki ayrı disk oluşturulup işlemler yapılır. Vmware de kurulum yapıyorsanız tüm nodeların erişebileceği ortak disk tanımlıyoruz. Bu işlem için node üzerinden scsi disk eklenip aşağıdaki adımlar takip edilir.

Sanal makinelerin dizinlerinde bulunan vmdk dosyalarına aşağıdakileri ekleyin. Bu işlem makinelerin diski lock lamaması için gereklidir.
disk.EnableUUID = "TRUE"
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
scsi1.sharedBus = "virtual"Grid Kurulumu için öncelikle asm disk yapılandırılması yapılmalıdır. İki makinenin de ortak olarak görmesi için DATA ve OCR için ISCSI olarak oluşturulan disk üzerinde işlemler yapılacaktır.
Grid software i yukarıdaki linkten indirdikten sonra sunucumuza atıyoruz ve unzip ile açıyoruz.
[oracle@rac1 19c]# cp LINUX.X64_193000_grid_home.zip /u01/app/19c/grid/
[oracle@rac1 19c]# unzip LINUX.X64_193000_grid_home.zip2 sunuda da root kullanıcısı ile cvuqdisk rpm paketi kurulur.
[root@rac1 grid]# cd /u01/app/19c/grid/cv/rpm
[root@rac1 rpm]# rpm -Uvh cvuqdisk*[root@rac2 grid]# cd /u01/app/19c/grid/cv/rpm
[root@rac2 rpm]# rpm -Uvh cvuqdisk*Eklediğimiz diskleri ls -al /dev/sd* komutuyla kontrol edebilriz sdb ve sdc disklerinin listelendiği görülür.
[root@rac1 rpm]# ls -al /dev/sd*
/dev/sda
/dev/sda1
/dev/sda2
/dev/sdb
/dev/sdc - sdb diskinin partition işlemi:
Aşağıdaki adımlar 1. sunucu üzerinde yapıyoruz. Partition işlemi için fdisk komutu ile işlem yapıyoruz. Inputlar aşağıdaki gibi veriyoruz.
[root@rac1 ~]# fdisk /dev/sdbWelcome 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 0xd0e0d61b.
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-25165823, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-25165823, default 25165823):
Using default value 25165823
Partition 1 of type Linux and of size 12 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.- sdc diskinin partition işlemi:
[root@rac1 ~]# fdisk /dev/sdcWelcome 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 0x6c7dc5e4.
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-73400319, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-73400319, default 73400319):
Using default value 73400319
Partition 1 of type Linux and of size 35 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.- Disklerimizi asm için damgalıyoruz.
[root@rac1 grid]# /usr/sbin/oracleasm configure -iConfiguring 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 []: oinstall
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: doneYapılan configurasyonları kontrol ediyoruz.
[root@rac1 grid]# /usr/sbin/oracleasm configureORACLEASM_ENABLED=true
ORACLEASM_UID=oracle
ORACLEASM_GID=oinstall
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=””
ORACLEASM_SCANEXCLUDE=””
ORACLEASM_SCAN_DIRECTORIES=””
ORACLEASM_USE_LOGICAL_BLOCK_SIZE=”false”Partition işleminden sonra disklerimiz aşağıdaki gibi görünmelidir.

- Oracle için oluşturduğumuz disk yapısını init ediyoruz.
[root@rac1 grid]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module “oracleasm”: oracleasm
Configuring “oracleasm” to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm[root@rac1 grid]# df -ha | grep oracle
oracle_software 931G 315G 617G 34% /media/sf_oracle_software
oracleasmfs 0 0 0 – /dev/oracleasm- DATA ve OCR disklerimizi create ediyoruz.
[root@rac1 grid]# oracleasm createdisk DATA /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac1 grid]# oracleasm createdisk OCR /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac1 grid]# cd /dev/oracleasm/disks
[root@rac1 disks]# ls -lrt
total 0
brw-rw—-. 1 oracle oinstall 8, 17 Dec 31 11:13 DATA
brw-rw—-. 1 oracle oinstall 8, 33 Dec 31 11:13 OCR
- 2. Sunumuzda damgalama işlemlerini yapıyoruz :
[root@rac2 grid]# /usr/sbin/oracleasm configure -iConfiguring 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 []: oinstall
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@rac2 grid]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module “oracleasm”: oracleasm
Configuring “oracleasm” to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@rac2 grid]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…
Instantiating disk “DATA”
Instantiating disk “OCR”
[root@rac2 grid]# oracleasm listdisks
DATA
OCRBu yazımızda Oracle ‘ın High Availibitlity çözümü olan Oracle RAC(Real Application Cluster) Kurulumunun Sunucu kurulumu, Ön Hazırlıkları ve ASM yapılandırması adımlarını tamamlamış olduk. Bir sonraki yazımızda Grid ve Database software kurulum adımlarını anlatacağım.
Grid ve Database Software kurulumu yazısı için tıklayınız.
Oracle Resmi Dokümantasyon için tıklayınız.



Leave a Comment