O data cu încheierea anului școlar 2012-2013 și începutul vacantei de vara presupun ca multi dintre voi vă pregătiți de concediu, cred că nu se putea găsi un moment mai prielnic în care sa testam o jucărie nouă, probabil și Larry Ellison s-a gândit la fel, de aceea a lansat noua versiune de baza de date Oracle 12c. Vă invit în următoarele rânduri să instalăm împreună două mașini virtuale cu Oracle 12c pe care le vom configura să funcționeze ca o singură bază de date.

21

Cei care au urmărit tutorialele mele precedente vă amintiți că în urma cu câteva luni am descris instalarea unui cluster de baza de date Oracle 11gR2, pentru cei care îmi vizitează blogul pentru prima oara ii invit sa citească seria tutorialelor pentru instalarea de RAC Oracle 11gR2.

Înainte de a începe avem nevoie de o instanta de Oracle Linux (sau RedHat) și de următoarele kituri de instalare:

Eu am ales sa instalez o instanta noua de linux pentru a exclude posibilele problemele care pot apărea din cauza unui conflict cu alte librarii instalate. Nu voi repeta toți pașii de instalare deoarece sunt identici cu cei de aici,  singura excepție este la pasul 10 în care am configurat trei interfețe de rețea din VirtualBox:

  • „Adapter 1” bifat, setat pe „NAT”,
  • „Adapter 2” bifat, setat pe „Host-only Adapter”,
  • „Adapter 3” bifat, setat pe „Internal Network”

setate ca în capturile de mai jos:

eth0: DHCP (Connect Automatically)

Oracle install-1

eth1: IP=192.168.56.101, Subnet=255.255.255.0, Gateway=192.168.56.1, DNS=192.168.56.101, Search=localdomain (Connect Automatically)

Oracle install-2

eth2: IP=192.168.1.101, Subnet=255.255.255.0, Gateway=<blank>, DNS=<blank>, Search=<blank> (Connect Automatically)

Oracle install-3

Configurări adiționale

  • Dupa ce s-a finalizat instalarea sistemului de operare rulam yum update pentru actualizarea sistemului.
  • Dacă nu ați dezactivat Security-Enhanced Linux atunci editați acum fișierul “/etc/selinux/config”
    SELINUX=disabled
    
  • In cazul in care nu ati dezactivat firewall-ul conform instrucțiunilor de aici atunci o puteți face rulând cele doua comenzi:
    # service iptables stop
    # chkconfig iptables off
    

Pre installation setup
Vom folosi pachetul oracle-rdbms-server-12cR1-preinstall disponibil doar in repository-ul din Oracle Linux 6 pentru instalarea librăriilor și configurarea parametrilor sistemului de operare

# yum install oracle-rdbms-server-12cR1-preinstall -y
  • Editați fișierul “/etc/hosts” și adăugați următoarele informații:
127.0.0.1 localhost.localdomain localhost 
# Public 
192.168.56.101 ora12-rac1.localdomain ora12-rac1 
192.168.56.102 ora12-rac2.localdomain ora12-rac2 
# Private 
192.168.1.101 ora12-rac1-priv.localdomain ora12-rac1-priv 
192.168.1.102 ora12-rac2-priv.localdomain ora12-rac2-priv 
# Virtual 
192.168.56.103 ora12-rac1-vip.localdomain ora12-rac1-vip 
192.168.56.104 ora12-rac2-vip.localdomain ora12-rac2-vip 

Configurarea DNS-ului

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

  • instalam pachetul bind:
yum install bind 

  • editați fișierul “/etc/named.conf”

options {
       listen-on port 53 { 127.0.0.1; 192.168.56.101; };
       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;
};

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

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

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

include "/etc/named.rfc1912.zones";
  • 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
ora12-rac1         IN A     192.168.56.101
ora12-rac2         IN A     192.168.56.102
ora12-rac1-priv    IN A    192.168.1.101
ora12-rac2-priv    IN A    192.168.1.102
ora12-rac1-vip     IN A     192.168.56.103
ora12-rac2-vip     IN A     192.168.56.104
ora12-scan         IN A     192.168.56.105
ora12-scan         IN A     192.168.56.106
ora12-scan         IN A     192.168.56.107
  • Creați fișierul “/var/named/56.168.192.in-addr.arpa” cu următorul conținut:
$ORIGIN 56.168.192.in-addr.arpa.
$TTL 1H
@ IN SOA ora12-rac1.localdomain. root.ora12-rac1.localdomain. (
    42
    3H
    1H
    1W
    1H )

56.168.192.in-addr.arpa. IN NS ora12-rac1.localdomain.

101 IN PTR ora12-rac1.localdomain.
102 IN PTR ora12-rac2.localdomain.
103 IN PTR ora12-rac1-vip.localdomain.
104 IN PTR ora12-rac2-vip.localdomain.
105 IN PTR ora12-scan.localdomain.
106 IN PTR ora12-scan.localdomain.
107 IN PTR ora12-scan.localdomain.
  • După aceste configurări porniți serviciul de DNS:
#service named start
  • Pentru a porni automat la rebootarea sistemului, executați:
#chkconfig named on
  • Editați fișierul “/etc/resolv.conf”:
search localdomain
nameserver 192.168.56.101
  •  Verificați că funcționează astfel:
 #nslookup ora12-scan.localdomain
Server:         192.168.56.101
Address:        192.168.56.101#53

Name:   ora12-scan.localdomain
Address: 192.168.56.106
Name:   ora12-scan.localdomain
Address: 192.168.56.107
Name:   ora12-scan.localdomain
Address: 192.168.56.105

Editarea parametrului nproc

O data cu instalarea pachetului oracle-rdbms-server-12cR1-preinstall a fost setat si parametrul nproc din fisierul /etc/security/limits.conf dar în Oracle Linux 6 acest parametru trebuie setat și în /etc/security/limits.d/90-nproc.conf astfel:

linia
* soft nproc 1024
trebuie sa fie inlocuita cu
* - nproc 16384

Network Time Protocol (NTP)

Î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

Crearea directoarelor unde va fi instalat Oracle:

#mkdir -p /u01/app/grid12cR1
#mkdir -p /u01/app/oracle/db12cR1
#chown -R oracle:oinstall /u01
#chmod -R 775 /u01/

Profil utilizator

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

export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=ora12-rac1.localdomain
export ORACLE_UNQNAME=cdbrac
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/grid12cR1
export DB_HOME=$ORACLE_BASE/db12cR1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=cdbrac1
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

Crearea Discurilor Partajate

Oprim masina virtuala si rulam urmatoarele comenzi din linia de comanda a statie gazda:

Creăm discurile:

>VBoxManage createhd --filename "G:\VM\Ora12c RAC\asm1.vdi" --size 5120 --format VDI --variant Fixed
>VBoxManage createhd --filename "G:\VM\Ora12c RAC\asm2.vdi" --size 5120 --format VDI --variant Fixed
>VBoxManage createhd --filename "G:\VM\Ora12c RAC\asm3.vdi" --size 5120 --format VDI --variant Fixed
>VBoxManage createhd --filename "G:\VM\Ora12c RAC\asm4.vdi" --size 5120 --format VDI --variant Fixed

Le atașăm mașinii virtuale:

>VBoxManage storageattach "Ora12c RAC" --storagectl "SATA" --port 1 --device 0 --type hdd --medium "G:\VM\Ora12c RAC\asm1.vdi" --mtype shareable
>VBoxManage storageattach "Ora12c RAC" --storagectl "SATA" --port 2 --device 0 --type hdd --medium "G:\VM\Ora12c RAC\asm2.vdi" --mtype shareable
>VBoxManage storageattach "Ora12c RAC" --storagectl "SATA" --port 3 --device 0 --type hdd --medium "G:\VM\Ora12c RAC\asm3.vdi" --mtype shareable
>VBoxManage storageattach "Ora12c RAC" --storagectl "SATA" --port 4 --device 0 --type hdd --medium "G:\VM\Ora12c RAC\asm4.vdi" --mtype shareable

Si le partajam:

>VBoxManage modifyhd "G:\VM\Ora12c RAC\asm1.vdi" --type shareable
>VBoxManage modifyhd "G:\VM\Ora12c RAC\asm2.vdi" --type shareable
>VBoxManage modifyhd "G:\VM\Ora12c RAC\asm3.vdi" --type shareable
>VBoxManage modifyhd "G:\VM\Ora12c RAC\asm4.vdi" --type shareable

Crearea discurilor ASM

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

# cd /dev
[root@ora12-rac1 dev]# ls sd*
sda  sda1  sda2  sdb  sdc  sdd  sde
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x752efccd.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652):
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

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”.

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

#yum install oracleasm-support oracleasm

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

Încărcam modulul de kernel

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

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

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...

Dacă rulam “listdisks” putem afișa discurile ASM

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

Crearea celui de-al doilea nod
Opriți mașina virtuala

halt

Clonați discul Ora12c RAC.vdi cu ajutorul comenzii “VBoxManage” rulat pe mașina gazda

VBoxManage clonehd ora12-rac1.vdi ora12-rac2.vdi

Creați o noua mașina virtuala “ora12-rac2″ din VirtualBox la fel cum ați procedat și cu ora12-rac1, cu excepția ca veți alege discul virtual ora12-rac2.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.

Adaugați discurile virtuale partajate mașinii virtuale “ora12-rac2

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

Porniți mașina virtuala “ora12-rac2″ 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=ora12-rac2.localdomain

Verificati adresa MAC a fiecarui nod. Nu vă faceți griji că acestea sunt listate ca „eth3″,”eth4” si „eth5”. Acestea sunt create dinamic deoarece adresa MAC a lui „eth0″,”eth1” si „eth2” sunt incorecte.

ifconfig -a | grep eth
eth3      Link encap:Ethernet  HWaddr 08:00:27:31:32:14
eth4      Link encap:Ethernet  HWaddr 08:00:27:C2:33:D5
eth5      Link encap:Ethernet  HWaddr 08:00:27:EC:34:3E

Editați fișierul „/ etc/sysconfig/network-scripts/ifcfg-eth0”, modificați doar câmpul HWaddr și ștergeți intrarea UUID. Valoarea HWaddr vine din interfața „eth3″ afișat mai sus.

Editați fișierul”/ etc/sysconfig/network-scripts/ifcfg-eth1” respectiv „/etc/sysconfig/network-scripts/ifcfg-eth2”, modificați doar câmpurile IPADDR și HWaddr și ștergerea intrarea UUID. Valoarea HWaddr vine din interfața „eth4” respectiv „eth5” afișate mai sus.

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

ORACLE_SID=orcl2; export ORACLE_SID
ORACLE_HOSTNAME=ora12-rac2.localdomain; export ORACLE_HOSTNAME

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

Rebotați mașina virtuala ora12-rac2 și porniți mașina virtuala ora12-rac1. Dupa ce ambele mașini sunt pornite verificați

ping -c 3 ora12-rac1
ping -c 3 ora12-rac1-priv
ping -c 3 ora12-rac2
ping -c 3 ora12-rac2-priv

Verificați dacă adresa de scanare este rezolvata în mod adecvat pe ambele noduri.

nslookup ora12-scan
Server:         192.168.56.101
Address:        192.168.56.101#53

Name:   ora12-scan.localdomain
Address: 192.168.56.107
Name:   ora12-scan.localdomain
Address: 192.168.56.105
Name:   ora12-scan.localdomain
Address: 192.168.56.106

Configurarea logării automate prin ssh
Pe ora12-rac2 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 ora12-rac1:/home/oracle/.ssh/
ssh-add

Pe ora12-rac1 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 ora12-rac2:/home/oracle/.ssh/
ssh-add

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

ssh ora12-rac1 date
ssh ora12-rac2 date

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

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s