Installare Oracle 19c su Oracle Linux 9

Questa e' una guida, la piu' semplice possibile ed in italiano, per installare il database Oracle nella versione 19c su sistemi Oracle Linux on-premises.

La versione 19c puo' essere considerata un'evoluzione ripetto alla versione 18c e l'architettura della 19c e' analoga a quella della versione 12c ma sono presenti comunque importanti novita'. Per l'installazione utilizzeremo come sistema operativo Linux 9 nella distribuzione Oracle Linux (OL) perche' presenta diversi vantaggi, anche se le differenze rispetto a Red Hat Enterprise Linux (RHEL) sono limitate.

Questo documento e' volutamente incompleto ma vuole riportare gli elementi essenziali della configurazione in modo sintetico, semplice, chiaro e, non ultimo, in italiano!

Il documento descrive: Prerequisiti, Preparazione, Installazione, Creazione istanza, Post Installazione, Novita' 19c, Varie ed eventuali, ...
La versione Oracle 19c e' disponibile dal 2019-04, Oracle Linux 9 e' disponibile dal 2023-05 ma il documento e' aggiornato fino alle ultime patch del 2025-04. Per maggiori dettagli fate riferimento alla documentazione ufficiale.

Prerequisiti

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

Sistema con un Oracle Linux 9.4 a 64 bit, UEK 7 con:
 un processore recente ed almeno 2GB RAM
 20GB di disco libero per l'installazione
 xxGB per i dati su un FS differente (opzionale: dipende dalla dimensione del DB)
 FS /tmp 1GB
 Swap 150MB
Accesso come root al sistema con shell
Accesso al sistema con X11 oppure VNC:  deve funzionare 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...

Il sistema operativo sara' Oracle Linux (OL) perche' dispone di un kernel ottimizzato ed un pacchetto con i principali prerequisiti per l'istallazione del database. Le differenze con gli altri Linux sono limitate ma questa e' la scelta piu' semplice come sistema operativo. Oracle Linux puo' essere scaricato dal sito ufficiale; va utilizzata una versione recente, la mia preferenza attualmente va a OL 9.4 perche' e' l'ultima EUS (Extended Update Support) disponibile. Come kernel e' opportuno utilizzare l'UEK (Unbreakable Enterprise Kernel), la mia preferenza attualmente va a UEK R7 upd.3 perche' la versione UEK R8 e' troppo recente. Per l'aggiornamento del software di sistema e' possibile utilizzare l'Oracle Linux Yum Server oppure l'ULN (Unbreakable Linux Network) che pero' richiede un CSI ed una registrazione.
Il sistema ospite puo' essere sia fisico che virtuale. Se l'ambiente e' virtuale va ricordato che Oracle certifica solo l'ambiente di virtualizzazione OLVM ma funzionano tutti i virtualizzatori senza problemi. Installando su un ambiente virtuale va posta particolare attenzione al licensing!

15GB di disco sarebbero sufficienti: 4.5GB per il SW (come scaricato dal sito ufficiale), 7GB per l'installazione Oracle, 4GB per una base dati minimale. Pero' si sta oggettivamente un po' stretti... meglio i 20GB indicati [NdA su un'installazione seria sono necessati 20GB per l'installazione ed un FS a parte per i dati].
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 OL... per installarlo: yum install xorg-x11-apps E' utile anche installare un VNC (eg. tigervnc-server, metacity, xterm), bind-utils, sysstats, ... E' opportuno controllare la corretta configurazione di un NTP (eg. chrony).

Una connessione Internet e' terribilmente utile per aggiornare il sistema operativo e scaricare gli ultimi aggiornamenti. 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 19c (19.3) per Linux 64bit dal sito ufficiale Oracle. Ovviamente si deve scegliere la versione per Linux... si tratta del file LINUX.X64_193000_db_home.zip di circa 3 GB.

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

# dnf install oracle-database-preinstall-19c ...

Nota: dnf (DaNdiFied YUM) ha sostituito yum (Yellowdog Updater Modified) da Fedora 22, RHEL 8, OL 8, ... ma dal punto di vista pratico non vi sono differenze.
I pacchetti da installare sono un centinaio ma il tutto richiede pochi minuti.

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

Con versione 19c si procede come con la versione 18c: il software viene distribuito come file immagine, basta scaricarlo nella Oracle Home e poi lanciare lo script runInstaller [NdA e' possibile, anzi consigliato, utilizzare l'opzione -applyRU ma per semplicita' vedremo successivamente come applicare le patch]. C'e' anche la possibilita' di utilizzare RPM packages ma, poiche' sono presenti diverse limitazioni, non descriveremo tale modalita'.

Importante: da eseguire come utente oracle [NdA come sempre] e direttamente nella ORACLE_HOME [NdA novita' dalla 18c]!

$ mkdir -p /u01/app/oracle/product/19/dbhome_1 $ chgrp oinstall /u01/app/oracle/product/19/dbhome_1 $ cd /u01/app/oracle/product/19/dbhome_1 $ unzip -q /tmp/db_home.zip $ cd /u01/app/oracle/product/19/dbhome_1 $ ./runInstaller

Appare la finestra del programma di installazione con i passi da seguire. Le prime scelte sono facili... installare solo il software o creare anche un database. Installiamo solo il software perche' creeremo l'istanza di database successivamente:

Installazione Oracle 19c - Passo 1

Istanza singola o RAC? Se non sapete la differenza scegliete Single Instance!

Installazione Oracle 19c - Passo 2

Molto importante e' la scelta della Database Edition. Le differenze tra l'Enterprise Edition e la Standard Edition sono molte ed importanti sia dal punto di vista funzionale che per il licensing:

Installazione Oracle 19c - Passo 3

Il wizard continua richiedendo tutti i dettagli per l'installazione, le scelte sono importanti ma dipendono dalla configurazione voluta, e presentando una form riassuntiva. Si procede confermando con Install:

Installazione Oracle 19c - Fine installazione

...

Per terminare l'installazione va eseguito come root lo script root.sh. E' molto semplice: basta lanciare il comando e confermare le risposte di default:

$ su - [root@db19 dbhome_1]# /u01/app/oracle/product/19/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/19/dbhome_1 ... Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : yes ...

Abbiamo finito!

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

Creazione istanza

Per la creazione di un'istanza Oracle si utilizza l'utility dbca. Dalla versione 12c l'utilty dbca permette di creare istanze singole, container o pluggable database, con la 19c non cambia molto ma e' stata inserita la possibilita' di effettuare un PDB clone:

Installazione Oracle 19c - DBCA

Il wizard per la creazione dell'istanza e' molto semplice ma alcune scelte sono molto importanti: il character set da utilizzare, la configurazione come PDB o meno, le password delle utenze amministrative (ovviamente da ricordare), ...

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/19/dbhome_1
ORACLE_SID=db19
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/db19pdb 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_DB19 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = db19)(PORT = 1521))

DB19 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db19)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db19)
    )
  )

DB19PDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db19)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db19pdb)
    )
  )

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

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

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 e' opportuno 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, esattamente come si faceva con le release precedenti, ed abbiamo finito!

Aggiornamenti

Per un'installazione di produzione e' fortemente consigliato installare le ultime RU (Release Updates).
Per ottenere le ultime patch disponibili accedere a: Quick Reference to Patch Numbers for Database... (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 e' necessario scaricare l'ultima versione di OPatch (cercare sul supporto Patch 6880880).

In pratica al momento dell'installazione i passi diventano:

su - oracle
cd $ORACLE_HOME
unzip /u01/stage/LINUX.X64_193000_db_home.zip
mv OPatch OPatch.old
unzip /u01/stage/p6880880_190000_Linux-x86-64.zip
unzip /u01/stage/p37642901_190000_Linux-x86-64.zip 
		
set DISPLAY=IP_Workstation:0
# export CV_ASSUME_DISTID=OEL7.6

./runInstaller -applyRU 37642901 &

Se invece si installa una patch successivamente va utilizzata l'utility OPatch:

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

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]
[NdE (19.22 2024-01) latest DB Update: 35943157]
[NdE (19.27 2025-04) latest DB Update: 37642901]

Novita' della versione 19c

La versione 19c e' stata definita una LTS (Long Term Support): e' stata e verra' utilizzata molto a lungo. Il rilascio e' avvenuto nel 2019 ed il periodo di supporto e' stato piu' volte prolungato ed e' previsto fino al 2032.

Se si vuole migrare alla versione 19c un database esistente e' molto importante verificare l'elenco delle fuzionalita' deprecate o desupportate. Poiche' spesso la versione di partenza e' molto differente e' importante ricordare anche le principali funzionalita' desupportate in precedenza:

E' importante notare che con la versione 19c la non-CDB architecture e' deprecata ma e' ancora supportata.

Tra le molte nuove funzionalita': SQL: listagg distinct, DBMS_JOB as interface to DBMS_SCHEDULER, JET instead of Flash in EM Express, SEHA (Standard Edition High Availability), automatic indexing, native JSON datatype, SQL/JSON simplifications, ...

L'elenco completo delle nuove funzionalita' e' riportato sulla documentazione ufficiale.

Altre informazioni...

La versione 19c e' stata rilasciata in pochi mesi su tutti gli ambienti/piattaforme: Exadata, in Cloud ed on-premises. Tutti i rilasci sono per processori x64.
La versione Oracle 23ai, che e' la successiva LTS, al momento (2025-04-01) non e' ancora disponibile on-premises.

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

L'ultimo aggiornamento disponibile della 19c e' la 19.27 (2025-04): le novita' introdotte nell'aarchitettura dalla versione 12c, su cui la 19c si basa, sono notevoli... leggete: architettura Oracle versione 12c, aggiornamenti della versione 12c R2 ed infine C'era una volta...


Titolo: Installazione di Oracle 19c su Linux
Livello: Medio (2/5)
Data: 1 Aprile 2019
Versione: 1.0.1 - 1 Aprile 2025
Autore: mail [AT] meo.bogliolo.name