Oracle RAC 19c

Parte I

Installazione Grid Infrastructure

Questa e' una guida, la piu' semplice possibile ed in italiano, per installare il database Oracle con l'opzione RAC nella versione 19c su sistemi Oracle Linux on-premise. In realta' una configurazione RAC non e' proprio facile... ma cercheremo di semplificare evitando le molte alternative possibili e concentrandoci sui punti essenziali.

L'installazione e la configurazione del RAC (Real Application Clusters) ha caratteristiche particolari e richiede la Oracle GI (Grid Infrastructure) che contiene i componenti Clusterware e l'ASM (Automatic Storage Management). Naturalmente un'installazione in cluster prevede piu' nodi ed e' piu' complessa di un'installazione singola. Anche dal punto di vista dei requisiti si tratta di un'installazione particolare perche' vi sono vincoli precisi e molto stretti sulle componenti Hardware e Software.

Per l'installazione utilizzeremo il sistema operativo Oracle Linux 8.5 e la versione Oracle 19.3 aggiornandola all'ultimo livello di patch disponibili. Dal punto di vista tecnico vi sono diverse scelte che e' necessario effettuare installando il RAC 19c, nel seguito utilizzeremo l'ASMlib e la configurazione non-CDB.

Per rendere piu' leggibili i contenuti abbiamo separato in passi dell'installazione in due pagine web. Questa paginetta contiene i dettagli della preparazione dell'ambiente e dell'installazione della componente Grid. L'installazione del software RDBMS Oracle e la creazione dell'instanza RAC sono descritti nel documento Installazione Oracle RAC 19c - Database.

I due documenti sono volutamente incompleti ma vogliono riportare gli elementi essenziali della configurazione in modo sintetico, semplice, chiaro e, non ultimo, in italiano! Per maggiori dettagli fate riferimento alla documentazione ufficiale.

Questo documento descrive l'installazione del Grid e contiene: Prerequisiti, Preparazione, Installazione GRID, Post Installazione, Varie ed eventuali, ...
Il documento Installazione Oracle RAC 19c - Database descrive l'installazione del database RAC.

Prerequisiti

I prerequisiti di un RAC in versione 19c sono i normali requisiti di un'installazione RDBMS cui si aggiungono quelli del cluster Oracle, ma li elenchiamo in dettaglio:

Due sistemi con un Oracle Linux 8.5 a 64 bit con:
 un processore recente ed almeno 8GB RAM
 diverse interfacce fisiche di rete (il minimo sono quattro e quelle per la rete interna debbono essere dedicate e a bassa latenza)
 50GB di disco libero per l'installazione
 uno storage condiviso su cui configurare i componenti su disco del RAC
Accesso come root al sistema con shell e con X11 ovvero funziona xclock&
Accesso SSH tra i sistemi 

Packages: Installazione minimale (Minimal Install)
Accesso ad Internet per scaricare ulteriori Sosftware

I prerequisiti indicati non sono assoluti, anche perche' mi sono permesso di semplificarli un poco... naturalmente l'elenco preciso sono quelli riportati nella documentazione ufficiale GI e documentazione ufficiale database.

Il sistema operativo puo' essere un Linux qualsiasi, ma le minori difficolta' si hanno con Oracle Linux (OL) ed utilizzando l'Unbreakable Kernel (UEK).
La certificazione dell'Hardware e' complessa ed i requisiti di dettaglio sono molti. L'installazione su molti hypervisor non e' certificata e presenta forti svantaggi dal punto di vista del licensing.

Per l'installazione teoricamente serve molto meno spazio disco. Pero' poi il patching ed il logging richiedono molto spazio e quindi si andrebbe velocemente in difficolta': meglio disporre di piu' spazio da subito. La parte dati e' su storage esterno condiviso tra i nodi.
Una connessione Internet e' terribilmente utile per aggiornare il sistema operativo e scaricare il software necessario, in pratica e' un prerequisito.

Preparazione

La parte di preparazione e' prettamente sistemistica: riguarda il controllo e la configurazione di tutti i prerequisiti sui sistemi ospite.
Da eseguire come utente root!

Scaricare il software Oracle 19c (19.3) per Linux 64bit dal sito ufficiale Oracle [NdA a seconda del supporto disponibile si puo' scaricare da OTN o da edelevery]. Ovviamente si deve scegliere la versione per Linux... si tratta dei file LINUX.X64_193000_grid_home.zip e di LINUX.X64_193000_db_home entrambe di circa di 3.0 GB. Per un'installazione di produzione e' fondamentale anche scaricare le patch come descritto nel seguito.

OTN edelevery
Installazione Oracle RAC 19c - Download OTN Installazione Oracle RAC 19c - Download edelivery
Installare i pacchetti prerequisiti per l'RDBMS Oracle, creare utenti e gruppi, impostare i parametri del kernel, ... su Oracle Linux e' facile: c'e' un RPM che fa tutto!
[NdA in realta' non proprio tutto quello che serve per il RAC, ma lo vediamo subito dopo]
# yum install oracle-database-preinstall-19c

I pacchetti che vengono installati dipendono dal tipo di installazione effettuata sul sistema operativo ma generalmente il tutto richiede pochi minuti.

Ora basta creare una directory sul file system scelto per l'installazione ed assegnarla all'utente oracle... ma poiche' installiamo un RAC le cose sono leggermente piu' complesse di un solo mkdir. E' consigliato utilizzare un'utenza differente tra Grid Infrastructure ed RDBMS Oracle: quindi utilizziamo l'utente unix grid per la GI e l'utente oracle per l'RDBMS.

/usr/sbin/useradd -u 54322 -g oinstall -G dba grid groupadd -g 54327 asmdba groupadd -g 54328 asmoper groupadd -g 54329 asmadmin usermod -G asmdba,asmoper,asmadmin,dba grid mkdir /u01 mkdir /u01/app mkdir /u01/app/oracle mkdir -p /u01/app/oracle/product/19.3.0.0/dbhome_1 chown oracle:oinstall /u01/app /u01/app/oracle /u01/app/oracle/product/19.3.0.0/dbhome_1 mkdir /u01/app/oraInventory mkdir /u01/app/grid mkdir -p /u01/app/19.3.0.0/grid chown grid:oinstall /u01/app/oraInventory /u01/app/grid /u01/app/19.3.0.0/grid su - grid cd /u01/app/19.3.0.0/grid unzip Download_path/LINUX.X64_193000_grid_home.zip

E' opportuno configurare gli ambienti degli utenti, si puo' fare anche dopo ma poiche' abbiamo appena creato le directory...

vi ~grid/.bash_profile
...
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.3.0.0/grid; export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
ORACLE_SID=+ASM
export ORACLE_SID

vi ~oracle/.bash_profile
...
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/19.3.0.0/dbhome_1; export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
#umask 022
#TMP=/u01/bigtmp; export TMP
#TMPDIR=$TMP; export TMPDIR

Va alzato il soft limit dello stack per l'utente grid. La modifica si effettua facilmente aggiungendo sul file /etc/security/limits.conf la riga:

grid               soft    stack            10240

Per l'installazione i nodi debbono avere gli utenti grid definiti SSH equivalent. Ma poiche' la procedura d'installazione ora riesce a farlo da sola... non facciamo nulla!

Va configurato/attivato il servizio chronyd (o il classico NTP).
Se presenti vanno disabilitati eventuali firewall, iptables, ...
Le interfacce di rete debbono essere configurate con BROADCAST e MULTICAST (e' il default) e debbono avere lo stesso nome.
Vanno configurati tutti gli IP dei nodi. Teoricamente anche sul DNS ma si puo' iniziare con il solo file /etc/hosts:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.1 oracle01.acme.com oracle01
10.0.0.2 oracle02.acme.com oracle02

192.168.0.1 oracle01-priv.acme.com oracle01-priv
192.168.0.2 oracle02-priv.acme.com oracle02-priv

10.0.0.3 oracle01-vip.acme.com oracle01-vip
10.0.0.4 oracle02-vip.acme.com oracle02-vip

10.0.0.5 oracle-scan.acme.com oracle-scan
10.0.0.6 oracle-scan.acme.com oracle-scan
10.0.0.7 oracle-scan.acme.com oracle-scan

L'ordine e' importante (prima l'FQDN), lo scan con IP multipli e' corretto (in effetti sul file host risolve solo un IP ma con il DNS verra' applicato il round-robin), le subnet debbono essere le stesse. Gli utenti/applicazioni utilizzeranno l'indirizzo di SCAN.

A me piace/serve anche installare una serie di pacchetti aggiuntivi: xterm, metacity, tigervnc-server, ...
Infine e' fortemente consigliato utilizzare l'ultima versione disponibile del sistema operativo: yum update -y

Installazione ASMlib

L'installazione dell'ASMlib non e' strettamente necessaria ma gestisce i dischi da assegnare all'ASM (che altrimenti vanno configurati a livello di sistema operativo con udev). Quindi, per semplificare la configurazione, utilizziamo ASMlib, ma in effetti consigliamo di farlo sempre. Importante: da eseguire come utente root! Dove recuperare gli RPM corretti dipende dal sistema operativo scelto, dal supporto disponibile, ... se si ha il supporto ULN (Unbreakable Linux Network) sono disponibili direttamente con lo yum, altrimenti:

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

Sullo storage e' consigliato definire dischi con dimensioni identiche quando usati per lo stesso scopo, le partizioni tipicamente corrispondono all'intero disco. Formattare i dischi con fdisk (n new partition, p primary, 1 first partition, default first sector, default last sector, w write)

Vanno configurati almeno 4 dischi per ogni Disk Group. Nei casi piu' semplici i dischi saranno /dev/sdc1, /dev/sdd1, ... Se si utilizza il multipath (fortemente consigliato altrimenti c'e' uno SPOF) i dischi possono essere:

multipath -F; multipath -v2
create: mpath17 (6900508b4000b322b0000600001ed0000)  HP,HSV450
[size=500G][features=0][hwhandler=0][n/a]
	\_ round-robin 0 [prio=100][undef]
	  \_ 7:0:1:69 sddq 69:224  [undef][ready]
	  \_ 8:0:1:69 sddq 69:224  [undef][ready]
	\_ round-robin 0 [prio=0][undef]
	  \_ 7:0:0:69 sddp 69:208  [undef][ready]
	  \_ 8:0:0:69 sddr 69:240  [undef][ready]
...

I dischi/LUN assegnati debbono avere identiche caratteristiche e performance, se sono presenti tipologie diverse di dischi e' opportuno utilizzarli in Disk Group distinti con l'ASM (eg. e' importante avere dischi veloci in scrittura per i REDO). I dischi cosi' creati vanno definiti come proprieta' dell'utente grid e assegnati i diritti necessari. Come anticipato e' opportuno configurare ASMlib ed assegnare i dischi con:

oracleasm configure -i oracleasm init oracleasm createdisk DATA01 /dev/sdc1 ... # XOR if multipath oracleasm createdisk DATA01 /dev/mpath/mpath17 ... oracleasm scandisks oracleasm listdisks

Termine preparazione

Ma davvero abbiamo finito di preparare l'ambiente per il grid? Possiamo controllare con:
 $ORACLE_HOME/runcluvfy.sh stage -pre crsinst -n "oracle01,oracle02"

Se i test riportano PASSED per ogni controllo si puo' procedere con l'installazione dell'infrastruttura Grid!

Installazione Infrastruttura Grid

In questo capitolo vediamo la procedura guidata per l'installazione della Grid Infrastructure. La componente di grid e' quella che gestisce il cluster e lo storage: e' una parte fondamentale della configurazione del RAC perche' fornisce funzionalita' di base fortemente connesse con il sistema operativo.

Importante: da eseguire come utente grid!
Importante: leggere questa nota!

Decomprimere il SW Oracle (unzip). Iniziare l'installazione dove e' stato scaricato il SW: abilitare X sul Client, impostare il DISPLAY lanciando:

su - grid cd $ORACLE_HOME unzip /u01/stage/LINUX.X64_193000_grid_home.zip export CV_ASSUME_DISTID=OEL7.6 xhost + set DISPLAY=IP_Workstation:0 cd $ORACLE_HOME; ./gridSetup.sh &

Parte il wizard! L'installazione dell'infrastruttura Grid e' guidata dal wizard dell'applicazione grafica. Vi sono diversi passi, in generale rispondere con il default a tutte le domande e proseguire con Next. Nel seguito sono riportati momenti principali e le eventuali eccezioni. Eseguire gli script, come utente root, quando richiesto. Non dimenticate le password inserite durante l'installazione! Installazione Oracle RAC 19c - Configurazione Grid: scelta configurazione Dobbiamo configurare un RAC quindi scegliamo "Configure Oracle Grid Infrastructure for a New Cluster".

Rispetto alle versioni precedenti vi sono piu' opzioni ma la procedura di configurazione e' in grado di svolgere in automatico piu' compiti come la configurazione SSH tra i nodi o l'esecuzione di script con l'utente root (purche' venga fornita la password): Installazione Oracle RAC 19c - Configurazione Grid: configurazione SSH

Vanno poi indicati il Disk Group da creare ed i dischi da assegnare, vengono visualizzati quelli catalogati dall'ASMlib, basta selezionarli: Installazione Oracle RAC 19c - Configurazione Grid: dischi ASM Se non vengono trovati i dischi... basta cambiare il path!

Vengono chiesti i gruppi di sistema, le directory da utilizzare, ... l'importante e' ricordare le risposte! Installazione Oracle RAC 19c - Configurazione Grid: gruppi sistema operativo

Prima di procedere all'installazione vengono controllati tutti prerequisiti, se tutto e' stato eseguito correttamente nessuno dovrebbe essere in stato FAILED: Installazione Oracle RAC 19c - Configurazione Grid: controllo prerequisiti

Verificati e corretti tutti prerequisiti inizia la procedura di installazione: Installazione Oracle RAC 19c - Installazione

Alcuni passi dell'installazione richiedono i privilegi di root: Installazione Oracle RAC 19c - Lancio script come root

Terminate le domande e lanciati alcuni script come root viene eseguita l'installazione del software. Naturalmente l'installazione richiede un po' di tempo: il software viene copiato e configurato automaticamente su tutti i nodi, viene attivato il cluster... finito! Installazione Oracle RAC 19c - Fine

Patch Grid

Installazione Oracle RAC 19c - Download OPatch L'installazione delle patch e' sempre fortemente consigliata. Con OL8 il livello minimo di patch, affinche' la configurazione sia supportata e' 19.7 (2020-04), quindi e' praticamente obbligatorio installare le patch. Tipicamente e' opportuno installare le piu' recenti e per scaricarle e' necessario disporre di un Oracle Support CSI.
E' possibile farlo ancora prima di iniziare l'installazione (evitando qualche errore del wizard), vediamo come!

Per installare le patch Oracle si usa OPatch. E' sempre presente sulle Home ma ogni volta va aggiornata scaricandola dal sito di supporto: Patch 6880880.
Il file e' di piccole dimensioni. Il nuovo OPatch scaricato deve sostituire il precedente:

su - grid cd $ORACLE_HOME rm -rf OPatch unzip /u01/stage/p6880880_190000_Linux-x86-64.zip

Installazione Oracle RAC 19c - Configurazione Grid: Release Update Con OPatch si effettua il patching sia della GI che dell'RDBMS dopo che sono stati installati, ma e' anche possibile effettuare il patching come primo passo della procedura d'installazione [NdA e' una possibilita' introdotta nella versione 18c].

Vediamo come ottenere l'ultimo aggiornamento del software.
Il primo passo e' cercare nel sito di supporto la Release Update da scaricare. Per farlo si parte dal Doc ID 2118136.2 (Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases), si scelgono le Oracle Database Updates (Versions 12.2 & higher), si sceglie la versione 19 e vengono riportate tutte le Release Update (RU) disponibili. La piu' recente per la GI e' la 19.4 che corrisponde al codice 33509923 e quindi si puo' scaricare, naturalmente scegliendo quella per il sistema operativo Linux.

Una volta scaricata la patch (che generalmente ha dimensioni significative) i comandi per effettuare l'aggiornamento direttamente durante l'installazione del grid sono:

su - grid cd /u01/stage/ unzip /u01/stage/33509923.zip cd $ORACLE_HOME DISPLAY=... ./gridSetup.sh -applyRU /u01/stage/33509923

In questo modo si dispone di tutte le correzioni di sicurezza e funzionali per il grid. Si noti infine il codice patch 33515361: sara' quello che servira' per effettuare la patch del database.

Se invece si installa una patch successivamente il comando e' analogo a quello eseguito per effettuare il patch di Oracle usando l'utility OPatch:

su - grid unzip /u01/stage/33509923.zip cd $ORACLE_HOME/OPatch ./OPatch /u01/stage/33509923

Ogni tre mesi sono disponibili nuove RU e cambiano i codici, ma la modalita' di installazione resta la stessa.
[NdE (19.15 2022-04) latest DB Update: 33806152, GI Update: 33803476]
[NdE (19.22 2024-01) latest DB Update: 35943157, GI Update: 35940989]

Post installazione

E' importante controllare che l'istanza Oracle ASM funzioni correttamente, la verifica si effettua da grid con sqlplus / as SYSASM.

La procedura ha installato anche i comandi Clusterware Control (CRSCTL) e Server Control Utility (SRVCTL). Il cluster ed i servizi vengono controllati e gestiti con:

olsnodes

crsctl [check|start|stop] has
crsctl status server
crsctl check css

srvctl [status|start|stop] asm

Controlli piu' completi sono: crsctl check cluster -all ; crsctl stat res -t ; cluvfy stage -post crsinst -n oracle1,oracle2
Quando e' tutto a posto e' possibile procedere con l'installazione del DB e la creazione delle instanze RAC come descritto nel documento Installazione Oracle RAC 19c - Database, ma potrebbe essere comodo prima configurare tutti i dischi con l'aiuto dell'asmca...

ASM Configuration Assistant

L'ASM Configuration Assistant (ASMCA) e' un wizard che consente la gestione dei dischi e dei disk group. A seconda delle caratteristiche dello storage da implementare sara' necessario effettuarne la relativa configurazione. Nei casi piu' semplici si utilizza un unico disk group DATA ma sono tipicamente configurati anche REDO, RECO, FRA, ...

Installazione Oracle RAC 19c - ASMCA: istanze ASM

Una volta configurati i dischi sull'ASM e' possibile proseguire con l'installazione del RAC!

Altre informazioni...

Questa pagina ha riportato i dettagli dell'installazione della componente Grid; l'installazione del software Oracle e la creazione dell'instanza RAC sono descritti nel documento Installazione Oracle RAC 19c - Database. Per la creazione di un'istanza Oracle si utilizza sempre l'utility dbca con cui e' possibile creare istanze singole, container o pluggable database.

Sul sito ufficiale Oracle e' disponibile un'ampia documentazione ufficiale tra cui la Installation Guide.

Per meglio conoscere le caratteristiche della versione 19c, che e' la versione LTS basata sulla 12c, potete leggere architettura Oracle versione 12c, aggiornamenti della versione 12c R2 e C'era una volta... Oracle. I dettagli sulle versioni di Oracle sono invece riassunti in questa paginetta.


Titolo: Installazione di Oracle RAC 19c su Oracle Linux - Infrastruttura Grid
Livello: Medio (2/5)
Data: 14 Febbraio 2021
Versione: 1.0.2 - 14 Febbraio 2024
Autore: mail [AT] meo.bogliolo.name