Oracle Linux 8.1 Konfigürasyonu

Bölüm 2: Oracle Linux 8.1 Konfigürasyonu

Sıra Oracle Linux 8.1 işletim sistemimizi Oracle 19C RAC kurulumu için hazırlamaya geldi.

  1. Terminal ekranımızı açalım. Özellikle belirtmediğim taktirde komutlar root kullanıcısı ile çalıştırılacaktır.
Root kullanıcısı ile login olduktan sonra terminal açılması

NOT: Komutlarımızı sunucu üzerindeki terminalden çalıştırabildiğimiz gibi SecureCRT, putty gibi araçlarla uzaktan bağlanarak da çalıştırabilmekteyiz.

2.1 : Network Yapılandırması:

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. Birinci işletim sistemi için rac1.localdomain , ikinci işletim sistemi için rac2.localdomain 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.

NOT: rac1 nodu için ayarlamaları yapıyoruz daha sonra aynı konfigurasyonu rac2 nodu içinde yapacağız.

rac1 nodu için ayarlamaları yapıyoruz daha sonra aynı konfigurasyonu rac2 nodu içinde yapacağız.

# Node1 için Public IP tanımlarımIP Adresi : 192.168.0.11Subnet : 255.255.255.0Gateway : 192.168.0.1# Node2 için Public IP tanımlarımIP Adresi : 192.168.0.12Subnet : 255.255.255.0Gateway : 192.168.0.1
  • Interconnect bağlantılar için ikinci ethernet kartımızı yapılandırıyoruz. Farklı subnette olmalı
# Node1 için Private IP tanımlarımIP Adresi : 10.0.0.11Subnet : 255.255.255.0Gateway : 10.0.0.1# Node2 için Private IP tanımlarımIP Adresi : 10.0.0.12Subnet : 255.255.255.0Gateway : 10.0.0.1
  • Host dosyamızı ayarlıyoruz.
[root@rac1~]# vi /etc/hosts#PUBLIC IP192.168.1.11 rac1.localdomain rac1192.168.1.12 rac2.localdomain rac2#PRIVATE IP192.168.2.11 rac1-priv.localdomain rac1-priv192.168.2.12 rac2-priv.localdomain rac2-priv#VIRTUAL IP192.168.1.21 rac1-vip.localdomain rac1-vip192.168.1.22 rac2-vip.localdomain rac2-vip#SCAN IP192.168.1.31 scan.localdomain scan192.168.1.32 scan.localdomain scan192.168.1.33 scan.localdomain scan
  • Public IP: Dışarıya açık, erişilebilen IP’ler.
  • Private IP: 2 makinenin birbiri ile haberleştiği, ayakta mısın diye kontrol ettiği farklı subnetteki IP ler
  • SCAN IP: Gelen isteğ hangisine ileteceğini, hangi makinede daha az iş varsa gelen isteği ona yönlendirmek için. YÜK DENGELEME

2.2 : Security (Güvenlik):

  • Firewall ve selinux disable edelim.

2.2.1 : Selinux disable etme

[root@rac1 ~]# vi /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these three values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are protected.#     mls - Multi Level
  • Değişikliğin setlenmesi için sunucuyu restart edebilir ya da aşağıdaki komutu çalıştırıp setlenmesini sağlayabiliriz.
[root@rac1 ~]# setenforce Permissivesetenforce: SELinux is disabled

2.2.2 : Firewall disable etme

  • Eğer Linux firewall enable ise disable edilip durdurulur.
[root@rac1 ~]# systemctl stop firewalld[root@rac1 ~]# systemctl disable firewalld
  • Firewall durumuna bakma:
[root@rac1 ~]# systemctl status firewalld● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)

2.3 : Time (Zaman)

  • NTP yapılandırmamızı node 1 ve node 2 için yapıyoruz ve servisi yeniden başlatıyoruz
[root@rac1 ~]# systemctl enable chronydCreated symlink /etc/systemd/system/multi-user.target.wants/chronyd.service → /usr/lib/systemd/system/chronyd.service.[root@rac1 ~]# systemctl start chronyd[root@rac1 ~]# systemctl restart chronyd[root@rac1 ~]# systemctl status chronyd

2.3 : Packages (Paketler) : RPM Kontrolü ve Eksik RPM’lerin Yüklenmesi

Oracle’ın ihtiyaç duyduğu bazı rpm paketler vardır. Bu rpm’ler eksiksiz yüklenmelidir. Oracle dokümantasyonlarında da belirtilen aşağıdaki rpm paketlerinin yüklü olması gerekmektedir. Bu rpm paketleri 19c veritabanı kurulumu için gerekli olan paketlerdir. Otomatik olarak ya da manuel olarak işlemleri gerçekleştirebiliriz.

2.3.1: Automatic Setup

[root@rac1 ~]# yum install -y oracle-database-preinstall-19c

2.3.2: Manual Setup

dnf install -y bcdnf install -y binutils#dnf install -y compat-libcap1dnf install -y compat-libstdc++-33#dnf install -y dtrace-modules#dnf install -y dtrace-modules-headers#dnf install -y dtrace-modules-provider-headers#dnf install -y dtrace-utilsdnf install -y elfutils-libelfdnf install -y elfutils-libelf-develdnf install -y fontconfig-develdnf install -y glibcdnf install -y glibc-develdnf install -y kshdnf install -y libaiodnf install -y libaio-devel#dnf install -y libdtrace-ctf-develdnf install -y libXrenderdnf install -y libXrender-develdnf install -y libX11dnf install -y libXaudnf install -y libXidnf install -y libXtstdnf install -y libgccdnf install -y librdmacm-develdnf install -y libstdc++dnf install -y libstdc++-develdnf install -y libxcbdnf install -y makednf install -y net-tools # Clusterwarednf install -y nfs-utils # ACFSdnf install -y python # ACFSdnf install -y python-configshell # ACFSdnf install -y python-rtslib # ACFSdnf install -y python-six # ACFSdnf install -y targetcli # ACFSdnf install -y smartmontoolsdnf install -y sysstatdnf install -y unixODBC
  • Linux 8’de aşağıdaki paketleri de kurmamız gerekmektedir.
# New for OL8dnf install -y libnsldnf install -y libnsl.i686dnf install -y libnsl2dnf install -y libnsl2.i686

RAC konfigürasyonu için, Oracleasm-support, asmlib indirmemiz gerekmektedir. Oracle Linux 7 versiyonlarında oracleasm-support paketini direk indirebilmekteyiz. 8 sürümünde aşağıdaki şekilde indirebilmekteyiz.

# cd /tmp# wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.17-1.el8.x86_64.rpm# wget https://public-yum.oracle.com/repo/OracleLinux/OL8/addons/x86_64/getPackage/oracleasm-support-2.1.12-1.el8.x86_64.rpm# yum localinstall ./oracleasm-support-2.1.12-1.el8.x86_64.rpm ./oracleasmlib-2.0.17-1.el8.x86_64.rpm

2.4 : Users, Groups and Directories

2.4.1 : Create Necessary Users and Groups :

Aşağıdaki kullanıcıları ve grupları oluşturalım.

[root@rac1 ~]# groupadd -g 54333 asmdba[root@rac1 ~]# groupadd -g 54334 asmoper[root@rac1 ~]# groupadd -g 54335 asmadmin[root@rac1 ~]# useradd -m -u 54341 -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash grid[root@rac1 ~]# usermod -a -G asmdba oracle

2.4.2 : User Credentials :

Oracle ve grid kullanıcımızın şifreleri yok onlara şifre ataması yapalım. Biz asm için grid kullanıcısını, databse kurulumu için oracle kullanıcısını kullanarak yapıladırmamızı yapacağız.

[root@rac1~]# passwd gridChanging password for user grid.New password:Retype new password:passwd: all authentication tokens updated successfully.[root@rac1~]# passwd oracleChanging password for user oracle.New password:Retype new password:passwd: all authentication tokens updated successfully.

2.4.3 : Directories (Dizinler) :

[root@rac1 ~]# mkdir -p /u01/app/grid/19.3.0/gridhome_1[root@rac1 ~]# mkdir -p /u01/app/grid/gridbase/[root@rac1 ~]# mkdir -p /u01/app/oracle/database/19.3.0/dbhome_1[root@rac1 ~]# chown -R oracle:oinstall /u01/[root@rac1 ~]# chown -R grid:oinstall /u01/app/grid[root@rac1 ~]# chmod -R 775 /u01/

2.5: Grid ve Oracle kullanıcısı için profile tanımlaması yapma:

Bu kısımda rac1–2 sunucularımız için gerekli setlemelerden bahsedeceğiz. Şuana kadar olan işler her iki sunucuda da ortak yapılmakta, eğer tüm rac1 sunucuda yapılan işlemler tamamlandıktan sonra clone alacaksanız clone sonrası rac2 sunucusundaki değişiklikleri değiştirmeyi unutmayın (ORACLE_SID ve ORACLE_HOSTNAME kısımlarını.)

  • rac1 üzerindeki ” oracle ” kullanıcısı için .bash_profile tanımlarını yapıyorum. Öncelikle root kullanıcımızdan oracle kullanıcısına geçiş yapalım.
[root@rac1 ~]# su - oracle
  • Şimdi setlemeleri yapabiliriz:
[oracle@rac1 ~]$ vi .bash_profile# Oracle Settingsexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_HOSTNAME=rac1export ORACLE_UNQNAME=orclexport ORACLE_BASE=/u01/app/oracle/database/19.3.0/export DB_HOME=$ORACLE_BASE/dbhome_1export ORACLE_HOME=$DB_HOMEexport ORACLE_SID=orcl1export ORACLE_TERM=xtermexport PATH=/usr/sbin:/usr/local/bin:$PATHexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • Değişikliklerin setlenmesi için :
[oracle@rac1 ~]$ . .bash_profile
  • rac1 üzerindeki ” grid ” kullanıcısı için .bash_profile tanımlarını yapıyorum.
[oracle@rac1 ~]$ su - gridPassword: -- grid[grid@rac1 ~]$ vi /home/grid/.bash_profile# Grid Settingsexport TMP=/tmpexport TMPDIR=$TMPexport ORACLE_HOSTNAME=rac1export ORACLE_BASE=/u01/app/grid/gridbase/export ORACLE_HOME=/u01/app/grid/19.3.0/gridhome_1export GRID_BASE=/u01/app/grid/gridbase/export GRID_HOME=/u01/app/grid/19.3.0/gridhome_1export ORACLE_SID=+ASM1export ORACLE_TERM=xtermexport PATH=/usr/sbin:/usr/local/bin:$PATHexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • Değişikliklerin setlenmesi için :
[grid@rac1 ~]$ . .bash_profile

NOT: Buraya kadar olan işlemler ortak, eğer clone alacaksak rac2 sunucumuzda aşağıdaki ORACLE_SID, HOST_NAME kısımlarını değişmeyi unutmayalım.

2.6 : Set Resource Limitations

2.6.1: Kernel Parametrelerinin Konfigürasyonu:

Eğer “oracle-database-preinstall-19c” şeklinde otomatik indirme işlemini yapmamışsak “/etc/sysctl.conf” dosyasına aşağıdaki değerleri girmemiz gerekmektedir.

NOT: Eğer preinstall yaptıysanız bu değerler otomatik gelir ,manuel olarak işlemleri gerçekleştiriyorsanız aşağıdaki değerleri girmeniz gerekektedir.

fs.file-max = 6815744kernel.sem = 250 32000 100 128kernel.shmmni = 4096kernel.shmall = 1073741824kernel.shmmax = 4398046511104kernel.panic_on_oops = 1net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576net.ipv4.conf.all.rp_filter = 2net.ipv4.conf.default.rp_filter = 2fs.aio-max-nr = 1048576net[root@rac1 ~]# /sbin/sysctl -pipv4.ip_local_port_range = 9000 65500

Bu ayarların uygulanması için sunucumuzu yeniden başlatmamız gerekiyor. Sunucumuzu yeniden başlatmadan bu değerleri set etmemiz mümkündür. Bunun için aşağıdaki komut çalıştırılır.

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

2.6.2: PAM ve Security Limit Değerlerinin Konfigürasyonu

Oracle kullanıcısının kullanacağı dosya tanımlayıcı sayısı ve kullanabileceği işlem (process) sayısı aşağıdaki iki konfigürasyon dosyasına yazılarak yapılandırılır. Manuel yapılandırma yapıyorsak, kullanacağı limit değerleri aşağıdaki şekilde girelim.

[root@rac1 ~]# vi /etc/security/limits.conforacle soft nofile 1024oracle hard nofile 65536oracle soft nproc 16384oracle hard nproc 16384oracle soft stack 10240oracle hard stack 32768oracle hard memlock 134217728oracle soft memlock 134217728

ASM Ayarlarının Yapılması

Aşağıdaki şekilde dediğimizde 3 satırı görüyor olmamız lazım : rac1- rac2 de

[root@rac1 ~]# oracleasm update-driverKernel:         4.18.0-147.el8.x86_64 x86_64x86_64Driver name:    oracleasm-4.18.0-147.el8.x86_64Driver for kernel 4.18.0-147.el8.x86_64 does not exist

Kernelde paketlerin versiyona uygun olacak şekilde, otomatik olarak yüklenmesi için aşağıdaki paketi yüklememiz gerekmektedir.

[root@rac1 ~]# yum install kmod-oracleasm

ASM Yetkilendirme İşlemleri

[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 ananswer will keep that current value.  Ctrl-C will abort.Default user to own the driver interface []: gridDefault group to own the driver interface []: oinstallStart Oracle ASM library driver on boot (y/n) [n]: yScan for Oracle ASM disks on boot (y/n) [y]: yThe next two configuration options take substrings to match device names.The substring "sd" (without the quotes), for example, matches "sda", "sdb",etc.  You may enter more than one substring pattern, separated by spaces.The special string "none" (again, without the quotes) will clear the value.Device order to scan for ASM disks []: yDevices to exclude from scanning []: yDirectories to scan []: yUse device logical block size for ASM (y/n) [n]: yWriting Oracle ASM library driver configuration: doneAçıklamalarDefault user to own the driver interface []: oracle -- bu driver ın sahibiDefault group to own the driver interface []: oinstall -- hangi grupta olcakStart Oracle ASM library driver on boot (y/n) [n]: y -- asm kütüphane driver ları baslangıcta yüklensin mi evet dedikScan for Oracle ASM disks on boot (y/n) [y]: y -- her açılışta bu diskler aransın mı taransın mı evet dedik

/dev altında oracleasm mount point oluşturuldu, böylelikle daha sonra oluşturacağımız diskleri görebileceğiz, listeyebileceğiz. rac1 ve rac2 sunucularında kerneli aktif hale getiriyoruz.

[root@rac1 ~]# oracleasm initCreating /dev/oracleasm mount point: /dev/oracleasmLoading module "oracleasm": oracleasmConfiguring "oracleasm" to use device logical block sizeMounting ASMlib driver filesystem: /dev/oracleasm

Buraya kadar olan işlemleri her iki sunucumuzda da aynı şeilde yapmamız gerekmekte, ya da tek bir sunucuda yapıp daha sonra clone alabiliriz.

RAC kurulumu için rac1–2 sunucularında ortak yaptığımız işlemler tamamlandı. Bundan sonraki işlemler her iki sunucuda da ayrı şekilde yapılacaktır.

Kişisel Web sayfama hoş geldiniz..