Questa e' una guida, la piu' semplice possibile, per installare
Oracle Grid Infrastructure 11gR2 su Linux.
Il documento fa riferimento ad un'installazione Standalone
della versione Oracle Grid Infrastructure 11.2.0.3
su un Linux Red Hat Enterprise Linux 5.8 con processore x86-64
ma quanto descritto vale, mutatis mutandis, anche per altre versioni e distribuzioni.
Oracle Grid Infrastructure e' un componente fondamentale per le installazioni
piu' complete e complesse dell'RDBMS Oracle (eg. RAC, ASM, Clusterware).
Questo documento e' un naturale
complemento del documento installazione di Oracle
che si riferisce ad un'installazione single instance su file system.
Dalla versione 11g R2 (11.2) con la stessa procedura d'installazione di Oracle Grid Infrastructure e' possibile installare due prodotti distinti: Oracle Clusterware ed Oracle Automatic Storage Management (ASM). Oracle Clusterware fornisce le funzionalita' di un failover cluster ed e' un prerequisito per un'installazione di Oracle RAC. Oracle ASM fornisce le funzionalita' di un Volume Manager per gestire direttamente i dischi riservati all'RDBMS Oracle ed all'ACFS.
Il documento descrive: Prerequisiti, Preparazione, Installazione ASMlib, Installazione, Post Installazione, Varie ed eventuali, ...
Sistema con un Linux Red Hat ES 5.8 (Intel x64) 5GB di disco libero (un'installazione tipica richiede 3.5GB...) FS x Temp 120MB Swap 150MB Accesso come root al sistema ed X11 funzionante (eg. deve funzionare xclock&) Accesso ad Internet, alla rete RH ed a metalink per scaricare i SW [opzionale ma fortemente consigliato] Packages: Installazione di default + RPM definiti da Oracle I prerequisiti sono riportati nel documento ufficiale ID 880989.1: Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 5 on AMD64/EM64T Il documento e' un indice e punta a molti altri documenti ed e' disponibile solo sul sito di supporto. Il riferimento e' Master Note of Linux OS Requirements for Database Server (ID 851598.1)
Da eseguire come utente root! La versione di base e' la 11.2.0.1 ma non serve scaricarla, la versione 11.2.0.3 e' una full patch Scaricare l'ultimo Patchset del software Oracle 11g R2 (11.2.0.3) dal Supporto Oracle Scegliere il tab Patches&Updates e cercare il patch number: 10404530 e selezionare Linux x86-64 Va scaricato il terzo .zip che contiene l'Oracle Grid Infrastructure (i primi due sono per l'RDBMS). Per la versione 11.2.0.4 il patch number e' 13390677. La Grid Infrastructure va installata prima dell'RDBMS e su una Home differente rispetto al DB. Vanno scaricati gli rpm con le ASMlib ed i driver per la gestione dello storage. I file corretti dipendono dalla versione del kernel (uname -a) e si trovano su questa pagina Applicare le ultime PSU (Patch Set Updates) e le ultime CPU (Critical Patch Updates and security alerts). Le PSU che aggiungono un quinto numero alla versione (eg. 11.2.0.3.7) Elenco delle versioni Oracle ed i path di upgrade: Oracle Database Upgrade Path Reference List (ID 730365.1) Ultime patch disponibili: Quick Reference to Patch Numbers for Database PSU, SPU(CPU), ... (ID 1454618.1) Ultima versione di OPatch (cercare sul supporto Patch 6880880). Preparare FS sufficientemente ampi per l'installazione e per l'area temporanea Se lo /tmp non e' sufficiente si puo' utilizzare una qualsiasi directory impostando la variabile d'ambiente TMP (eg. mkdir /u01/bigtmp; chmod 777 /u01/bigtmp). Creare un oracle user, groups, ... configurare i profile groupadd -g 500 dba useradd -u 500 -d /home/oracle -G "dba" -m -s /bin/bash oracle grep nobody /etc/passwd Nobody:x:99:99:Nobody:/:/sbin/nobody $ vi ~oracle/.bash_profile umask 022 ORACLE_BASE=/u01/app/grid; export ORACLE_BASE TMP=/u01/bigtmp; export TMP TMPDIR=$TMP; export TMPDIR NB: e' fortemente consigliato utilizzare un'utenza differente tra Grid Infrastructure ed RDBMS In questo caso utilizzare l'utente grid per la GI e l'utente oracle per l'RDBMS
L'installazione dell'ASMlib non e' strettamente necessaria ma semplifica la gestione dei dischi da assegnare all'ASM (che altrimenti vanno configurati a livello di sistema operativo con udev). Quindi, in questo semplice documento, utilizziamo ASMlib!
Importante: da eseguire come utente root! Installare gli rpm con rpm -ilv oracleasm-2.6.18-308.13.1.el5-2.0.5-1.el5.x86_64.rpm \ oracleasm-support-2.1.7-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el5.x86_64.rpm Formattare i dischi con fdisk (n new partition, p primary, 1 first partition, 1 start cylinder, last cylinder...) E' fortemente consigliato definire partizioni con dimensioni identiche. Vanno configurati almeno 4 dischi per ogni Disk Group. Se si utilizza il multipath (consigliato) i dischi sono: 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. I dischi cosi' creati vanno definiti come proprieta' di oracle/grid o assegnati i diritti necessari. Configurare ASMlib ed assegnare i dischi: oracleasm configure -i oracleasm init oracleasm createdisk DATA01 /dev/mpath/mpath17 ... oracleasm listdisks
Importante: da eseguire come utente oracle (o grid se si utilizzano utenze diverse GI/RDBMS)! Decomprimere il SW Oracle (unzip) Iniziare l'installazione dove e' stato scaricato il SW: abilitare X sul Client, impostare il DISPLAY e lanciare: xhost + set DISPLAY=IP_Workstation:0 cd grid; ./runInstaller& Rispondere con il default a tutte le domande, nel seguito sono riportate le eccezioni. Eseguire gli script, come utente root, quando richiesto. Non dimenticate le password inserite durante l'installazione!!
I primi passi dell'installazione richiedono email ed utenze registrate sul supporto Oracle per l'eventuale (consigliato) download delle patch.
Viene richiesto il tipo di installazione.
Scegliere "Install and Configure Grid Infrastructure for a Standalone Server".
Se l'installazione viene eseguita configurare un RAC va invece scelto "Install and Configure Grid Infrastructure for a Cluster"
[NdA l'installazione e' un poco piu' complessa e non la vediamo in questo documento].
Vanno 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 chieste le password delle utenze SYS, ASM, ... l'importante e' ricordarle!
Terminate le domande, confermato il prospetto riassuntivo e lanciati alcuni script come root viene eseguita l'installazione del software, il relink degli eseguibili, ...
Finito!
Buon divertimento! Have a lot of Fun! Que te diviertas! Diverte-te!
Controllate che l'istanza Oracle ASM funzioni con sqlplus / as SYSASM.
Non e' obbligatorio... ma e' comodo che PATH, ORACLE_HOME ed ORACLE_SID siano impostati nel .bash_profile di oracle:
ORACLE_BASE=/ora11r2/app/oracle; export ORACLE_BASE ORACLE_HOME=/ora11r2/app/oracle/product/11.2.0/grid; export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin ORACLE_SID=+ASM export ORACLE_SIDLa procedura ha installato anche i comandi Clusterware Control (CRSCTL) e Server Control Utility (SRVCTL). Il cluster ed i servizi vengono gestiti con:
Ovviamente prima di poter avviare un database con i comandi di cui sopra... bisogna installarlo!
E' disponibile un'ampia documentazione ufficiale sul sito Oracle tra cui la guida per l'installazione. Molto comoda e' anche questa pagina che riporta l'esempio di un'installazione standalone.
La configurazione ottimale dello storage richiede un disegno specifico ed un po' di esperienza
ma l'utilizzo dell'ASM semplifica le attivita' da parte del DBA ed ottimizza gli accessi.
Nel caso di utilizzo di Storage su SAN conviene scegliere la protezione esterna: EXTERNAL,
nel caso di utilizzo di dischi locali conviene utilizzare il livello di protezione piu' elevato: HIGH.
Una successiva installazione di Oracle Database 11gR2 vede in modo semplice l'ASM. Basta scegliere l'ASM come tipologia di Database Storage ed indicare la password di ASMSNMP: i datafile verranno creati su ASM.
L'utilizzo di datafile su ASM e' molto semplice. Per create un tablespace basta il comando (DGROUP e' un Disk Group definito su ASM):
create tablespace mytbs datafile '+DGROUP' size 100M;
Per controllare l'allocazione di spazio e' utile questa query:
col PCT format 999.0 select GROUP_NUMBER DG#, name, ALLOCATION_UNIT_SIZE AU_SZ, STATE, TYPE, TOTAL_MB, FREE_MB, free_mb/total_mb*100 PCT, OFFLINE_DISKS from v$asm_diskgroup;Un report piu' completo puo' essere ottenuto con questo script SQL.
Su un DB Server e' presente una sola istanza ASM (con SID= +ASM) e le diverse istanze di Database ospitate sullo stesso server utilizzano lo stesso unico ASM. Nel caso di configurazione in RAC ogni nodo ha una propria istanza ASM, anche in questo caso le diverse istanze di database ospitate sullo stesso nodo utilizzano lo stesso unico ASM (con SID= +ASMn).
L'installazione e la configurazione dell'ASMlib sono semplici.
Ma se qualcosa non funziona e' necessario conoscere qualche
elemento in piu' sull'implementazione di ASMlib.
Quindi quanto segue e' un poco meno semplice...
Poiche' si tratta di un'interfaccia tra sistema operativo e database
una corretta configurazione di ASMlib e' importante per garantire il funzionamento
nelle configurazioni piu' complesse (eg. multipath, cluster, RAC) ed a fronte
di ogni situazione (eg. reboot, componente failure).
Il file di configurazione /etc/sysconfig/oracleasm e' (e deve essere)
un link simbolico al file oracleasm-_dev_oracleasm.
E' possibile indicare l'ordine di scan e/o l'eventuale esclusione di
dischi con i parametri ORACLEASM_SCANORDER e ORACLEASM_SCANEXCLUDE.
I nomi dei dischi riconosciuti sono quelli di /proc/partitions
ed i relativi device driver debbono trovarsi sono /dev.
Per ottenere l'elenco dei dischi da ASM e visualizzarne i dettagli:
oracleasm scandisks oracleasm listdisks oracleasm querydisk -p DATA01 oracleasm querydisk -l DATA01
ls -l /dev/oracleasm/disks/ total 0 brw-rw---- 1 grid asmadmin 253, 13 Jul 13 13:13 DATA01 brw-rw---- 1 grid asmadmin 253, 21 Jul 13 13:13 DATA02 brw-rw---- 1 grid asmadmin 253, 14 Jul 13 13:13 DATA03 ls -l dm-13 brw-rw---- 1 root disk 253, 13 Jul 13 13:13 dm-13
Su Linux, dalla versione 2.6, viene utilizzato udev per la gestione dei devices.
Con udev e' possibile gestire dinamicamente i device e svolgere configurazioni
analoghe a quelle effettuate da ASMlib. L'importante e' che non vadono in conflitto...
La configurazioni di udev sono guidate da regole (eg. /etc/udev/rules.d).
Quando ASMlib crea un disco da utilizzare con Oracle lo marchia:
od -c /dev/sb1 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 # \b 037 { 0000020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000040 O R C L D I S K D A T A 0 1 \0 \0 0000060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 *Quando lo si cancella (ammesso di riuscirci...):
oracleasm deletedisk DATA01 Clearing disk header: done Dropping disk: done od -c /dev/sb1 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 # \b 037 { 0000020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000040 O R C L C L R D \0 \0 \0 \0 \0 \0 \0 \0 0000060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 *
Poiche' i dischi sono marchiati e' semplice per l'ASM riconoscere lo storage assegnato ed evitare situazioni di conflitto (eg. un mapping errato sulla SAN che inverta o raddoppi un disco).
Da ultimo, ma non ultimo per importanza, occhio alle versioni ed agli aggiornamenti: meglio che siano sempre aggiornate, in particolare in fase di configurazione su nuovo HW.
Titolo: Installazione di Oracle Grid Infrastructure 11g R2
Livello: Avanzato
Data: 21 Giugno 2012
Versione: 1.0.2 - 14 Febbraio 2014
Autore: mail [AT] meo.bogliolo.name