Prima parte în care am configurat VirtualBox-ul și a fost instalată mașina virtuală, o puteți găsi aici.

În continuare vom pregăti sistemul pentru instalarea Oracle Grid Infrastructure.

Cerințe preliminare pentru instalarea Oracle
Dacă la instalarea sistemului de operare, nu ați configurat Set Up Software Updates atunci acum puteți sa configurați repository-ul cu utilizatorul validat de către Oracle la achiziționarea suportului pentru Oracle Linux. În cazul in care nu dețineți nu dețineți un utilizator Unbrekable Linux Network atunci trebuie sa folosiți repository-ul http://public-yum.oracle.com/

Deschideți un terminal, vă logați cu un utilizator cu drepturi de root, verificați că aveți o conexiune către internet și executați:

# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo

Atenție, instrucțiunile de mai sus sunt doar pentru versiunile Oracle Linux 6!

După ce ați configurat repository-ul trebuie sa instalați toate pachetele necesare instalării  Oracle Grid Infrastructure cât și pentru Oracle Database. Începând cu luna martie 2012, Oracle a simplificat acest procedeu lansând un pachet care va executa următoarele taskuri:

  • va descarca și instala toate pachetele necesare și dependințele acestora
  • va crea utilizatorul oracle, în cazul în care nu exista, cât și grupurile oinstall și dba
  • modifica parametrii kernel din /etc/sysctl.conf pentru configurarea shared memory, semaphores, etc
  • setează resource limits hard și soft shell în /etc/security/limits.conf, cât și numărul maxim de fișiere deschise, numărul de procese, conform cerințelor Oracle Database 11g Release 2 Server installation
  • setează numa=off în parametrii kernel boot pentru mașinile x86_64

Configurări adiționale

1. Descarcați kitul de instalare Oracle Grid Infrastructure

2. Instalați pachetul grid media

cd /media/sf_Oracle_11gR2/grid/rpm/
rpm -Uvh cvuqdisk-1.0.9-1.rpm

3. Dacă nu ați dezactivat secure linux atunci editați acum fișierul „/etc/selinux/config”

SELINUX=disabled

4. Editați fișierul „/etc/hosts” și adăugați următoarele informații:

# Public
192.168.0.111   racnode1.localdomain        racnode1
192.168.0.112   racnode2.localdomain        racnode2
# Private
192.168.1.111   racnode1-priv.localdomain   racnode1-priv
192.168.1.112   racnode2-priv.localdomain   racnode2-priv
# Virtual
192.168.0.113   racnode1-vip.localdomain    racnode1-vip
192.168.0.114   racnode2-vip.localdomain    racnode2-vip
# SCAN
192.168.0.115   racscan.localdomain ol6-112-scan
192.168.0.116   racscan.localdomain ol6-112-scan
192.168.0.117   racscan.localdomain ol6-112-scan

5. Configurarea DNS-ului

Toate operațiile de mai jos se vor executa cu drept de root

5.1 logat ca root, executați:

yum install bind-libs bind bind-utils

5.2 editați fișierul „/etc/named.conf”

options {
        listen-on port 53 { 127.0.0.1; 192.168.0.4; };
        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";
        allow-query     { any; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        forwarders { 192.168.4.100; 192.168.8.100; };
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "localdomain." IN {
        type master;
        file "localdomain.zone";
        allow-update { none; };
};

zone "0.168.192.in-addr.arpa." IN {
        type master;
        file "0.168.192.in-addr.arpa";
        allow-update { none; };
};

include "/etc/named.rfc1912.zones";

5.3 Creați fișierul „/var/named/localdomain.zone” cu următorul conținut:

$TTL    86400
@               IN SOA  localhost root.localhost (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           localhost
localhost       IN A            127.0.0.1
racnode1            IN A    192.168.0.101
racnode2            IN A    192.168.0.102
racnode1-priv       IN A    192.168.1.101
racnode2-priv       IN A    192.168.1.102
racnode1-vip        IN A    192.168.0.111
racnode2-vip        IN A    192.168.0.112
racscan        IN A    192.168.0.121
racscan        IN A    192.168.0.122
racscan        IN A    192.168.0.123

5.4 Creați fișierul „/var/named/0.168.192.in-addr.arpa” cu următorul conținut:

$ORIGIN 0.168.192.in-addr.arpa.
$TTL 1H
@       IN      SOA     maggie.localdomain.     root.maggie.localdomain. (      2
                                                3H
                                                1H
                                                1W
                                                1H )
0.168.192.in-addr.arpa.         IN NS      maggie.localdomain.

101     IN PTR  racnode1.localdomain.
102     IN PTR  racnode2.localdomain.
111     IN PTR  racnode1-vip.localdomain.
112     IN PTR  racnode2-vip.localdomain.
121     IN PTR  racscan.localdomain.
122     IN PTR  racscan.localdomain.
123     IN PTR  racscan.localdomain.

5.5 După aceste configurări porniți serviciul de DNS:

#service named start

5.6 Pentru a porni automat la rebootarea sistemului, executați:

#chkconfig named on

5.7 Editați fișierul „/etc/resolv.conf” de pe fiecare nod:

nameserver 192.168.0.4
search localdomain

5.8 Verificați că funcționează astfel:

 #nslookup rac-scan.localdomain
Server:         192.168.0.4
Address:        192.168.0.4#53

Name:   racscan.localdomain
Address: 192.168.0.121
Name:   racscan.localdomain
Address: 192.168.0.122
Name:   racscan.localdomain
Address: 192.168.0.123

Dacă doriți configurări avansate ale serverului de DNS vă rog să consultați documentația oficială, disponibilă la adresa: https://www.isc.org/software/bind/documentation

6. În acest tutorial vom folosi procesul Oracle Cluster Time Synchronization Service (ctssd) pentru a sincroniza data și ora intre noduri. Pentru asta va trebui să ștergem configurările serviciului Network Time Protocol (NTP), logat cu root:

#service ntpd stop
#chkconfig ntpd off
#mv /etc/ntp.conf /etc/ntp.conf.orig
#rm /var/run/ntpd.pid

7. Crearea directoarelor unde va fi instalat Oracle:

#mkdir -p  /u01/app/11.2.0/grid
#mkdir -p /u01/app/oracle/product/11.2.0/db_1
#chown -R oracle:oinstall /u01
#chmod -R 775 /u01/

8. Logați-vă cu utilizatorul oracle și adaugați următoarele linii în fișierul „.bash_profile”

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=racnode1.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=orcl1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
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

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_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'

9. Creați fișierul „/home/oracle/grid_env” cu următorul conținut:

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

10. Creați fișierul „/home/oracle/db_env” cu următorul conținut:

ORACLE_SID=orcl1; 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

11. Opriți mașina virtuala

halt

12. Crearea discurilor partajate

12.1 În continuare vom crea patru discuri virtuale partajate, utilizând tool-ul VBoxManage.sh/exe din directorul unde este instalat VirtualBox:

VBoxManage createhd --filename asm1.vdi --size 5120 --format VDI --variant Fixed
VBoxManage createhd --filename asm2.vdi --size 5120 --format VDI --variant Fixed
VBoxManage createhd --filename asm3.vdi --size 5120 --format VDI --variant Fixed
VBoxManage createhd --filename asm4.vdi --size 5120 --format VDI --variant Fixed

12.2 Conectarea discurilor la mașina virtuala

VBoxManage storageattach racnode1 --storagectl "Controlor SATA" --port 1 
--device 0 --type hdd --medium asm1.vdi --mtype shareable
VBoxManage storageattach racnode1 --storagectl "Controlor SATA" --port 2 
--device 0 --type hdd --medium asm2.vdi --mtype shareable
VBoxManage storageattach racnode1 --storagectl "Controlor SATA" --port 3 
--device 0 --type hdd --medium asm3.vdi --mtype shareable
VBoxManage storageattach racnode1 --storagectl "Controlor SATA" --port 4 
--device 0 --type hdd --medium asm4.vdi --mtype shareable

12.3 Ne asiguram ca pot fi partajate

VBoxManage modifyhd asm1.vdi --type shareable
VBoxManage modifyhd asm2.vdi --type shareable
VBoxManage modifyhd asm3.vdi --type shareable
VBoxManage modifyhd asm4.vdi --type shareable

13. Crearea discurilor ASM

13.1 Pornim mașina virtuala, ne logam cu un utilizator care deține drepturi de root și formatam discurile nou instalate

cd /dev
ls sd*
#fdisk /dev/sdb
vom proceda asemănător și pentru celelalte discuri sdc, sdd, sde
în fiecare caz, vom răspunde în următoarea ordine: "n", "p", "1", 
"Return", "Return" and "w".

13.2 Instalăm librăriile necesare configurării discurilor ASM

#yum install oracleasm-support oracleasm

13.3 Configurăm ASMLib

# 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  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]: 
Writing Oracle ASM library driver configuration: done

13.4 Încărcam modulul de kernel

# /usr/sbin/oracleasm init
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm

13.5 Creăm cele patru discuri după cum urmează:

# /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK4 /dev/sde1
Writing disk header: done
Instantiating disk: done

13.6 Nu este necesar dar putem rula „scandisks” pentru a reîmprospăta configurația discurilor ASM.

# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

13.7 Dacă rulam „listdisks” putem afișa discurile ASM

# /usr/sbin/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4

14. Crearea celui de-al doilea nod

14.1 Opriți mașina virtuala

halt

14.2 Clonați discul racnode1.vdi cu ajutorul comenzii „VBoxManage” rulat pe mașina gazda

VBoxManage clonehd racnode1.vdi racnode2.vdi

14.3 Creați o noua mașina virtuala „racnode2” din VirtualBox la fel cum ați procedat și cu „racnode1”, cu excepția ca veți alege discul virtual racnode2.vdi. Nu uitați sa adaugați cel de-al doilea adaptor de rețea, la fel cum ați procedat și pentru prima mașina virtuala.

14.4 Adaugați discurile virtuale partajate mașinii virtuale „racnode2”

VBoxManage storageattach racnode2 --storagectl "Controlor SATA" --port 1 
--device 0 --type hdd --medium asm1.vdi --mtype shareable
VBoxManage storageattach racnode2 --storagectl "Controlor SATA" --port 2 
--device 0 --type hdd --medium asm2.vdi --mtype shareable
VBoxManage storageattach racnode2 --storagectl "Controlor SATA" --port 3 
--device 0 --type hdd --medium asm2.vdi --mtype shareable
VBoxManage storageattach racnode2 --storagectl "Controlor SATA" --port 4 
--device 0 --type hdd --medium asm2.vdi --mtype shareable

14.5 Porniți mașina virtuala „racnode2” apăsând butonul „Start” de pe toolbar-ul ferestrei VirtualBox. Logați-va cu un utilizator cu drepturi de root și editați fișierul „/etc/sysconfig/network” după cum urmează:

NETWORKING=yes
HOSTNAME=racnode2.localdomain

 

14.6 Editați fișierul „/home/oracle/.bash_profile” corectând variabilele ORACLE_SID și ORACLE_HOSTNAME

ORACLE_SID=orcl2; export ORACLE_SID
ORACLE_HOSTNAME=racnode2.localdomain; export ORACLE_HOSTNAME

 

14.7 Corectați variabila ORACLE_SID și în fișierele „/home/oracle/db_env” și „/home/oracle/grid_env”.

14.8 Rebotați mașina virtuala racnode2 și porniți mașina virtuala racnode1. Dupa ce ambele mașini sunt pornite verificați

ping -c 3 racnode1
ping -c 3 rac1node-priv
ping -c 3 racnode2
ping -c 3 racnode2-priv

 

15. Configurarea logării automate prin ssh

15.1 Pe racnode2 executați următoarele comenzi cu userul oracle:

/usr/bin/ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys2
cat id_rsa.pub >> authorized_keys
scp authorized_keys2 racnode1:/home/oracle/.ssh/
ssh-add

 

15.2 Pe racnode1 executați următoarele comenzi cu userul oracle:

/usr/bin/ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys2
cat id_rsa.pub >> authorized_keys
scp authorized_keys2 racnode2:/home/oracle/.ssh/
ssh-add

15.3 Puteți verifica dacă configurările sunt corecte cu ajutorul comenzilor:

ssh racnode1 date
ssh racnode2 date

în cazul în care va fi afișată data fără să vă fie cerută parola atunci configurările sunt corecte

Dacă ați finalizat cu succes toți pașii descriși mai sus putem să începem instalarea infrastructurii Oracle Grid. Un ghid cu detaliile instalării într-un articol viitor…

Lasă un comentariu

Mathijs Bruggink

Tips Tricks and Blogs on Oracle

Oracle Romania

Simplify IT

Programat in Romania

Blogul industriei de software din Romania. Comunitate dezvoltatori

Dan Bârsan

The miracle is not that we do this work, but that we are happy to do it. I'm writing in Romanian and English

Romanian Oracle User Group

Focusing On Oracle Database Administration

Big Lazy SysAdmin

Adapt. Enjoy. Survive.

Talip Hakan Ozturk's ORACLE BLOG

The secret of success is at your fingertips!...

Pickleball spielen

002 - License to dink

Mathijs Bruggink

Tips Tricks and Blogs on Oracle

Oracle Romania

Simplify IT

Programat in Romania

Blogul industriei de software din Romania. Comunitate dezvoltatori

Dan Bârsan

The miracle is not that we do this work, but that we are happy to do it. I'm writing in Romanian and English

Romanian Oracle User Group

Focusing On Oracle Database Administration

Big Lazy SysAdmin

Adapt. Enjoy. Survive.

Talip Hakan Ozturk's ORACLE BLOG

The secret of success is at your fingertips!...

Pickleball spielen

002 - License to dink