Installare Oracle 12c R2 su Linux

Questa e' una guida, la piu' semplice possibile, per installare il database Oracle nella versione 12c R2 (12.2.0.1.0) sul sistema operativo Oracle Linux 7 (OL 7.3). Ma quanto descritto in seguito vale, mutatis mutandis, anche per altre versioni e distribuzioni. In particolare, a parita' di versione, sono molto limitate le differenze tra il sistema utilizzato Oracle Linux (OL) rispetto a Red Hat Enterprise Linux (RHEL).
Questo documento e' volutamente incompleto ma vuole riportare gli elementi essenziali della configurazione in modo sintetico, semplice, chiaro e, non ultimo, in italiano! Per maggiori dettagli fate riferimento alla documentazione ufficiale.

Il documento descrive: Prerequisiti, Preparazione, Installazione, Post Installazione, Varie ed eventuali, ...


Prerequisiti

I prerequisiti della versione 12c R2 sono i normali requisiti di un'installazione Oracle ma li elenchiamo in dettaglio:

Sistema con un Oracle Linux 7.3 [NdA 7.4 dal 2017-07] a 64 bit con:
 un processore recente e 2GB RAM
 20GB di disco libero 
 FS /tmp 1GB
 Swap 150MB
Accesso come root al sistema con shell e con X11 ovvero funziona xclock&

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

I prerequisiti indicati non sono assoluti, anche perche' mi sono permesso di semplificarli un poco...

Dettagli OS

Con i sistemi operativi Linux Red Hat o CentOS [NdE quest'ultimo non e' certificato] le differenze sono minime purche' nella stessa versione (7.x). Il vantaggio di Oracle Linux e' nella semplicita' dell'installazione degli RPM necessari e nel kernel ottimizzato per l'RDBMS. Si potrebbe utilizzare anche un OL o RHEL 6.4+... ma perche' utilizzare una versione vecchia?
CentOS/RH/OL 7 si lamentano con warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory? Basta impostare nel file /etc/environment

LANG=en_US.utf-8
LC_ALL=en_US.utf-8

Il sistema ospite puo' essere sia fisico che virtuale. Se l'ambiente e' virtuale va ricordato che Oracle certifica solo l'ambiente di virtualizzazione OVM ma funzionano tutti i virtualizzatori senza problemi. Installando su un ambiente virtuale va posta particolare attenzione al licensing!
La 12c R2 e' disponibile anche in Cloud, anzi in realta' e' stata rilasciata prima su Cloud che on-premise!

15GB di disco sarebbero sufficienti: quasi 4GB per il SW (dopo l'unzip), 7GB per l'installazione Oracle, 4GB per una base dati minimale (3GB per il CDB ed 1GB per un PDB). Pero' si sta oggettivamente un po' stretti... meglio i 20GB indicati.
Anche se su un server e' piu' comune l'uso di X11 l'installazione si puo' anche eseguire su console grafica direttamente sul sistema o via VNC. xclock non e' installato per default su OL7... per installarlo: yum install xorg-x11-apps Fanno anche comodo il telnet ed ftp: si installano nello stesso modo. A me piace anche il VNC, lo installo sempre.

Una connessione Internet e' terribilmente utile per aggiornare il sistema operativo. E' sempre consigliabile l'aggiornare il sistema operativo con yum update prima di effettuare l'installazione di Oracle.


Preparazione

Da eseguire come utente root!

Scaricare il software Oracle 12c R2 (12.2.0.1.0) dal sito ufficiale Oracle. Dal 6 marzo 2017 sono disponibili le versioni per Linux e per Solaris a 64bit. Ovviamente si deve scegliere la versione per Linux... si tratta del file linuxx64_12201_database.zip di circa 3.5 GB.

Installare i pacchetti prerequisiti per l'RDBMS Oracle, creare utenti e gruppi, impostare i parametri del kernel, ... e' facile c'e' un RPM che fa praticamente tutto:

# yum install oracle-database-server-12cR2-preinstall.x86_64 ... Dependencies Resolved ==================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================== Installing: oracle-database-server-12cR2-preinstall x86_64 1.0-2.el7 ol7_latest 18 k Installing for dependencies: bind-libs x86_64 32:9.9.4-38.el7_3.2 ol7_latest 1.0 M bind-utils x86_64 32:9.9.4-38.el7_3.2 ol7_latest 201 k compat-libcap1 x86_64 1.10-7.el7 ol7_latest 17 k compat-libstdc++-33 x86_64 3.2.3-72.el7 ol7_latest 190 k ...

I pacchetti da installare a volte superano il centinaio [NdA dipende dal tipo di installazione Linux effettuata] ma il tutto richiede pochi minuti.
Nota 1: rispetto alle versioni precendenti per installare Oracle 12c Release 2 non e' piu' necessario il gcc.
Nota 2: se non si utilizza Oracle Linux vanno configurati i repository scaricandoli in /etc/yum.repos.d con wget http://yum.oracle.com/public-yum-ol7.repo o, per le versioni precedenti, con wget http://yum.oracle.com/public-yum-ol6.repo.
Nota 3: Il kernel UEK e' un prerequisito del preinstall... ma non e' un prerequisito per l'installazione di Oracle RDBMS che e' supportato anche senza UEK.

Ora basta creare una directory sul file system scelto per l'installazione (con 20GB disponibili) ed assegnarla all'utente oracle. I passi successivi saranno da eseguire come utente oracle:

# mkdir /u01/app # chown oracle:oinstall /u01/app # su - oracle


Installazione

Importante: da eseguire come utente oracle!

Decomprimere il SW Oracle (unzip). Si ottiene una directory ./database con tutto il software. Iniziare l'installazione dove e' stato scaricato il SW con una sessione X11 o su console:

$ cd database $ ./runInstaller &

Appare la finestra del programma di installazione con i passi da seguire:

Installazione Oracle 12c R2 - Passi installazione

Le prime scelte sono facili: installare il software e creare un database, effettuare un'installazione Server Class:

Installazione Oracle 12c R2 - Passi installazione

E' possibile effettuare l'installazione di una Single Instance, di un RAC o di un RAC One Node. Se non conoscete la differenza... scegliete Single Instance!

Installazione Oracle 12c R2 - Passi installazione

Ora vanno definiti i dettagli per l'installazione. Se non si e' installata in precedenza la Grid Infrastructure (che contiene l'ASM) lo storage type puo' essere solo File System. Molto importante e' la scelta della Database Edition. La configurazione del Multitenant e' molto importante in Oracle 12c... sicuramente scrivero' qualcosa in piu' sull'argomento.
Infine bisogna impostare il nome del database e naturalmente non si deve dimenticare la password!

Installazione Oracle 12c R2 - Passi installazione

Il programma di installazione ora controlla i requisiti dell'installazione e suggerisce eventuali correzioni:

Installazione Oracle 12c R2 - Passi installazione

E' tutto pronto per effettuare l'installazione, basta premere il tasto Install!

Installazione Oracle 12c R2 - Passi installazione

L'installazione procede e vengono eseguiti i diversi passi:

Installazione Oracle 12c R2 - Passi installazione

Vanno eseguiti come root due script:

Installazione Oracle 12c R2 - Passi installazione

L'esecuzione e' molto semplice: basta lanciare i comandi e confermare le risposte di default...

$ su - [root@db122 stage]# /u01/app/oraInventory/orainstRoot.sh ... [root@db122 dbhome_1]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1 ... Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : no Oracle Trace File Analyzer (TFA - User Mode) is available at : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl OR Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script : /u01/app/oracle/product/12.2.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh

Il TFA puo' essere attivato in seguito lanciando i comandi indicati (li ho lasciati apposta come referenza).

L'installazione puo' proseguire:

Installazione Oracle 12c R2 - Passi installazione

L'installazione termina correttamente:

Installazione Oracle 12c R2 - Passi installazione

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


Post installazione

Non e' obbligatorio... ma e' molto comodo impostare PATH, ORACLE_HOME ed ORACLE_SID aggiungendo le seguenti righe nel file .bash_profile dell'utente oracle:

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1
ORACLE_SID=db12
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin

Bisogna controllare che Oracle funzioni!
Prima ci si connette in locale al CDB:

$ sqlplus / as sysdba SQL> show con_name CON_NAME ------------------------------ CDB$ROOT

Per la connessione al PDB si puo' utilizzare l'EZconnect: sqlplus sys/Welcome1@localhost:1521/db12pdb as sysdba

Per connettersi da client ai PDB e' necessario configurare il TNSNAMES.ORA utilizzando il nome del PDB come servizio [NdA corrisponde al file $ORACLE_HOME/network/admin/tnsnames.ora]:

LISTENER_DB12 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = db122)(PORT = 1521))

DB12 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db122)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db12)
    )
  )

DB12PDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db122)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db12pdb)
    )
  )

E' ora possibile connettersi con sqlplus system@db12pdb o con SQLcl.

Infine e' possibile accedere con un browser sull'URL dell'Enterprise Manager Database Express https://db122.xenialab.it:5500/em :

Installazione Oracle 12c R2 - Enterprise Manager Database Express 12c

Abbiamo utilizzato la configurazione Multitenant [NdA giustamente poiche' la configurazione Single Instance e' stata deprecata].
Tuttavia se non si vuole pagare per l'opzione Multitenant bisogna limitarne l'utilizzo ad un solo PDB. Dalla versione 12cR2 e' possibile farlo con un nuovo parametro:

alter system set max_pdbs=1 scope=both;

Ora basta configurare lo startup al boot... ed abbiamo finito!


Aggiornamenti

Per un'installazione di produzione e' fortemente consigliato installare le ultime PSU (Patch Set Updates). Le PSU aggiungono un quinto numero alla versione (eg. 12.2.0.1.1). Al momento non vi sono RU disponibili [NdE la 12cR2 e' stata rilasciata il 6 marzo 2017, da allora sono uscite le patch 170718, 170814 e 171017: naturalmente va sempre installata l'ultima disponibile]. Per ottenere le ultime patch disponibili accedere a: Quick Reference to Patch Numbers for Database PSU, SPU(CPU), ... (ID 1454618.1). Un altro documento utile come riferimento per ottenere l'elenco delle versioni Oracle ed i path di upgrade e': Oracle Database Upgrade Path Reference List (ID 730365.1). Per applicare le patch potrebbe essere necessario scaricare l'ultima versione di OPatch (cercare sul supporto Patch 6880880).

Problemi nell'esecuzione automatica delle statistiche? Applicate il Doc ID 2127675.1! [NdE EXEC dbms_stats.init_package() sul CDB]


Altre informazioni...

Il 6 marzo 2017, oltre che su Linux, la versione 12cR2 on-premise e' stata rilasciata per Solaris e, pochi giorni dopo [NdE il venerdi 17 del '17], per Microsoft Windows. Su Oracle Public Cloud era gia' disponibile da Novembre 2016. Tutti i rilasci sono per processori x64.

Sul sito ufficiale Oracle e' disponibile un'ampia documentazione ufficiale tra cui la Installation Guide [NdA solo 233 pagine].

L'installazione di Oracle in versione 12c Release 1 e' molto simile a quella di Oracle 12c Release 2 vista in questa pagina.

Per la creazione di un'istanza Oracle si utilizza sempre l'utility dbca. Dalla versione 12c l'utilty dbca permette di creare istanze singole, container o pluggable database.

Installazione Oracle 12c - DBCA

Le novita' introdotte dalla versione 12 sono notevoli... meglio dare un'occhiata alla versione 12c ed alle aggiornamenti della versione 12cR2.


Titolo: Installazione di Oracle 12c R2 su Linux
Livello: Medio (2/5)
Data: 6 Marzo 2017
Versione: 1.0.3 - 1 Novembre 2017
Autore: mail [AT] meo.bogliolo.name