Installare Oracle 11g R2 su RHEL

Questa e' una guida, la piu' semplice possibile, per installare Oracle 11g R2 (11.2.0.3) su Linux Red Hat Enterprise Linux 5.x con processori Intel 64 bit. Ma quanto descritto vale, mutatis mutandis, anche per altre versioni e distribuzioni [NdE sono state periodicamente aggiornate le indicazioni ed il documento riporta le indicazioni specifiche fino alla versione 11.2.4.0.5 del 20 Gennaio 2015]. In particolare sono molto limitate le differenze, a parita' di versione, tra: Red Hat Enterprise Linux (RHEL), Oracle Enterprise Linux (OEL), CentOS e Scientific Linux. Perche' RHEL 5.x? Perche' e' la piu' utilizzata per l'installazione di Oracle: la versione RHEL 6 e' stata certificata solo di recente [2Q 2012] e non e' ancora molto diffusa.
Questo documento e' volutamente incompleto ma vuole riportare gli elementi essenziali della configurazione in modo sintetico, semplice, chiaro e, non ultimo, in italiano! Questa pagina e' un aggiornamento rispetto al documento Installazione di Oracle 11g su Linux Red Hat che, per ovvie ragioni di tempo (il documento era stato scritto nell'Agosto 2007), si riferiva alla precedente versione 11g R1. Nel caso in cui si voglia effettuare un'installazione piu' complessa, come nel caso del RAC che richiede la presenza di ASM e dell'infrastruttura del cluster, e' necessario installare prima la componente Grid come descritto nel relativo documento. Per maggiori dettagli fate riferimento alla documentazione ufficiale.
Questo documento descrive: Prerequisiti, Preparazione, Installazione, Post Installazione, Varie ed eventuali, ...


Prerequisiti


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 (meglio se e' 1GB, cosi' si puo' creare un DB subito)
Swap 150MB
Accesso come root al sistema ed X11 funzionante (eg. deve funzionare xclock&)
Accesso ad Internet ed alla rete RH per scaricare i SW [opzionale ma consigliato]
oppure CD di installazione RHEL

 Packages: Installazione di default + RPM ...
 Parametri del kernel, limits, ...
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...
Ma in realta' con la 11gR2 si possono non predisporre tutti i prerequisiti!!!
La procedura di installazione genera eventualmente uno script da eseguire
come root che effettua tutte le configurazioni necessarie!


Preparazione

Per un'installazione di prova si puo' scaricare una delle versioni dell'RDBMS Oracle disponibili sul sito Oracle.

Per un'installazione di produzione va assolutamente installata una versione aggiornata scaricata dal sito di supporto Oracle (eg. 11.2.0.4), cosa che richiede un utenza registrata sul MOS.
Collegarsi sul sito Supporto Oracle, dal sito indicato scegliere il tab Patches&Updates e cercare il patch number: 13390677 (v. 11.2.0.4) e selezionare Linux x86-64 (dischi 1 e 2 di 7). Si tratta di circa 5GB...

E' fortemente consigliato scaricare anche le ultime PSU (Patch Set Updates) o almeno le ultime CPU (Critical Patch Updates and security alerts). Le PSU che aggiungono un quinto numero alla versione (eg. 11.2.0.4.4). Per ottenere le ultime patch disponibili accedere a: Quick Reference to Patch Numbers for Database PSU, SPU(CPU), ... (ID 1454618.1) e ricercare le ultime PSU disponibili (eg. ID 17478514 JAN-2014 11.2.0.4.1, ..., ID 19121551 OCT2-014 11.2.0.4.4, ID 19769489 JAN-2015 11.2.0.4.5, ID 20299013 APR-2015 11.2.0.4.6).
Per applicare le patch potrebbe essere necessario scaricare l'ultima versione di OPatch (cercare sul supporto Patch 6880880).
Un documento utile come riferimento ottenere l'elenco delle versioni Oracle ed i path di upgrade e': Oracle Database Upgrade Path Reference List (ID 730365.1).

Se si vuole utilizzare l'ASM va scaricato il terzo disco che contiene l'Oracle Grid Infrastructure. L'ASM va installato prima dell'RDBMS (nella 10g si faceva assieme) ed e' consigliato l'uso di un utente (eg. grid) e di una Home differente.

Da eseguire come utente root!

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/oracle; export ORACLE_BASE
 TMP=/u01/bigtmp; export TMP
 TMPDIR=$TMP; export TMPDIR

Nelle versioni precedenti era strettamente necessario:
 Configurare i parametri del kernel: vi /etc/sysctl.conf
 Configurare lo ulimit: vi /etc/security/limits.conf
 Impostare lo ulimit...
 Installare i packages prerequisiti...
Non lo facciamo con questa versione: aspettiamo il check automatico che genera lo script da lanciare come root!

Installazione


Importante: da eseguire come utente oracle!

Decomprimere il SW Oracle (unzip)

Iniziare l'installazione dove e' stato scaricato il SW:
xhost + 		# Ovviamente sulla propria Workstation!!
set DISPLAY=IP_Workstation:0
cd database; ./runInstaller&

Rispondere con il default a tutte le domande, nel seguito sono riportate le eccezioni.
Eseguire gli script, come utente root, quando richiesto.
Non dimenticare le password inserite durante l'installazione!!

I primi passi dell'installazione richiedono email ed utenze registrate sul supporto Oracle, ma si possono disabilitare.

Installazione Oracle 11g R2 - Dati utente

Ovviamente file system e directory debbono essere presenti e di proprieta' dell'utente Oracle. Occhio alla scelta dell'Edition corretta: i costi di licenza sono molto diversi! La scelta sul tipo di Edition si effettua solo con l'installazione Tipical, se viene scelta una installazione Custom l'edition e' automaticamente Enterprise.

Installazione Oracle 11g R2 - Configurazione complessiva

Questa e' la feature che preferisco dell'installazione 11g R2: un check completo dei prerequisiti e la generazione dello script di Fix. I pacchetti mancanti vanno installati con yum install gcc elfutils-libelf-devel libaio-devel ...:
Installazione Oracle 11g R2 - Check prerequisiti

Introdotto successivamente, ma molto comodo e' anche il pacchetto oracle-rdbms-server-11gR2-preinstall (da installare come descritto in questa paginetta).

Terminate le domande ora viene eseguita l'installazione di Oracle, il relink degli eseguibili, la creazione del database, ...

Installazione Oracle 11g R2 - Installazione automatica

Al termine dell'installazione il prospetto riassuntivo ne riporta gli estremi principali:

Installazione Oracle 11g R2 - Prospetto finale

Per un'installazione di produzione ovviamente vanno anche installate le patch aggiornate. L'installazione si effettua con il solito comando di OPatch.


Post installazione

Controllate che Oracle funzioni! Prima con sqlplus, da remoto per verificare anche il listener ed infine con un browser sull' URL http://hostname:1158/em :

Installazione Oracle 11g R2 - Enterprise Manager

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/dbhome_1; export ORACLE_HOME
TMP=/ora11r2/bigtmp; export TMP
TMPDIR=$TMP; export TMPDIR
PATH=$PATH:$ORACLE_HOME/bin
ORACLE_SID=TST11GR2
export ORACLE_SID
Configurate lo startup (/etc/rc3.d /etc/oratab /etc/rc3.d/S35vncserver ...).
Finito!

Buon divertimento! Have a lot of Fun! Que te diviertas! Diverte-te!


Altre informazioni...

E' disponibile un'ampia documentazione ufficiale sul sito Oracle tra cui la guida per l'installazione.

Per creare nuovi database utilizzare dbca. In qualche caso e' utile la modalita' non interattiva (non richiede un terminale grafico):

dbca -silent -createDatabase
-templateName /u01/app/oracle/product/11.2.0/assistants/dbca/templates/test_new.dbt
-gdbName test.domain.com
-sid test
-sysPassword change_on_install
-systemPassword manager
-asmSysPassword welcome1
-emConfiguration NONE
-datafileDestination DATA
-recoveryAreaDestination DATA
-storageType ASM
-diskGroupName DATA
-recoveryGroupName DATA
-nodelist oracle1,oracle2
-characterSet AL32UTF8
-nationalCharacterSet AL16UTF16
-variables ORACLE_BASE=/u01/app/oracle

La configurazione ottimale dello storage richiede un disegno specifico ed un po' di esperienza. Con le attuali tecnologie impostazioni specifiche come quelle dei raw device, delle DMT, degli extents, ... non hanno un grande impatto. Utilizzare i default e l'AUTOINCREMENT e' una buona scelta per la maggioranza delle installazioni. Naturalmente se dovete partecipare ad un benchmark, se il vostro database supera il Terabyte, se prevedete migliaia di connessioni, ... sara' necessario un tuning specifico: chiamateci!

Non dimenticate di impostare backup logici e fisici!

E' utile controllare periodicamente l'utilizzo di spazio e gli accessi sulla base dati. Un report molto dettagliato puo' essere ottenuto con questo script SQL


Titolo: Installazione di Oracle 11g R2 su Linux Red Hat
Livello: Medio (2/5)
Data: 21 Giugno 2012
Versione: 1.0.4 - 14 Febbraio 2015
Autore: mail [AT] meo.bogliolo.name