Parte I
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.
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.
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 |
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.
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
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:
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:
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!
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:
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! 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):
Vanno poi indicati il Disk Group da creare ed i dischi da assegnare, vengono visualizzati quelli catalogati dall'ASMlib, basta selezionarli: 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!
Prima di procedere all'installazione vengono controllati tutti prerequisiti, se tutto e' stato eseguito correttamente nessuno dovrebbe essere in stato FAILED:
Verificati e corretti tutti prerequisiti inizia la procedura di installazione:
Alcuni passi dell'installazione richiedono i privilegi di 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!
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:
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:
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:
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]
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...
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, ...
Una volta configurati i dischi sull'ASM e' possibile proseguire con l'installazione del RAC!
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
Data: 14 Febbraio 2021
Versione: 1.0.2 - 14 Febbraio 2024
Autore: mail [AT] meo.bogliolo.name