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 grupurileoinstall
șidba
- modifica parametrii kernel din
/etc/sysctl.conf
pentru configurarea shared memory, semaphores, etc - setează resource limits
hard
și softshell
î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 racnode
2.localdomain racnode
2
# Private
192.168.1.111 racnode1
-priv.localdomain racnode1
-priv
192.168.1.112 racnode
2
-priv.localdomain racnode
2
-priv
# Virtual
192.168.0.113 racnode1
-vip.localdomain racnode1
-vip
192.168.0.114 racnode
2
-vip.localdomain racnode
2
-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…