Installare Oracle 18c (18.3) su Linux

Questa e' una guida, la piu' semplice possibile ed in italiano, per installare il database Oracle nella versione 18c (18.3) su sistemi Linux on-premise [NdA disponibile dal 2018-07-23].

Per chi pensa che non dia i numeri... la versione Oracle 18 corrisponde alla versione 12.2.0.2 mentre la 18.3 e' la prima on-premise: la numerazione delle versioni Oracle e' cambiata di recente! L'architettura della 18c e' analoga a quella della versione 12c ma sono presenti comunque importanti novita'. Per l'installazione utilizzeremo come sistema operativo Linux 7.x nelle distribuzioni: Oracle Linux (OL) / Red Hat Enterprise Linux (RHEL) / CentOS.

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, Novita' 18c, Varie ed eventuali, ...

Prerequisiti

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

Sistema con un Oracle Linux 7.x a 64 bit con:
 un processore recente e 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 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...

Il sistema operativo puo' essere Oracle Linux (OL), Red Hat Enterprise Linux (RHEL) o CentOS; quest'ultimo non e' certificato ma tutti e tre funzionano con poche differenze tra loro.
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!

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 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 OL7... per installarlo: yum install xorg-x11-apps A me piace anche installare: VNC, bind-utils, sysstats, ...

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 18c (18.3) per Linux 64bit dal sito ufficiale Oracle. Ovviamente si deve scegliere la versione per Linux... si tratta del file LINUX.X64_180000_db_home.zip di circa 4.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!

# yum install oracle-database-server-18c-preinstall.x86_64 ...

I pacchetti da installare sono un centinaio ma il tutto richiede pochi minuti.
Nota: il repository puo' essere scaricato in /etc/yum.repos.d con wget http://yum.oracle.com/public-yum-ol7.repo.

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

La versione 18c presenta una novita': il software viene distribuito come file immagine: basta scaricarlo nella Oracle Home e poi lanciare lo script runInstaller. 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' della 18c]!

$ mkdir -p /u01/app/oracle/product/18/dbhome_1 $ chgrp oinstall /u01/app/oracle/product/18/dbhome_1 $ cd /u01/app/oracle/product/18/dbhome_1 $ unzip -q /tmp/db_home.zip $ cd /u01/app/oracle/product/18/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:

Installazione Oracle 18c - Passi installazione 1-8

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

Installazione Oracle 18c - Passi installazione 2-8

Molto importante e' la scelta della Database Edition:

Installazione Oracle 18c - Passi installazione 3-8

Il wizard continua con tutti i dettagli per l'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@db18 dbhome_1]# /u01/app/oracle/product/18/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/18/dbhome_1 ... Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : yes ...

Abbiamo finito!

Installazione Oracle 18c - Fine 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/18/dbhome_1
ORACLE_SID=db18
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/db18pdb 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_DB18 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = db18)(PORT = 1521))

DB18 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db18)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db18)
    )
  )

DB18PDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db18)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = db18pdb)
    )
  )

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

Infine e' possibile accedere con un browser sull'URL dell'Enterprise Manager Database Express https://db18.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... ed abbiamo finito!

Aggiornamenti

Per un'installazione di produzione e' fortemente consigliato installare le ultime RU (Release Updates) e RUR (Release Update Revisions). Al momento non vi sono RU disponibili [NdE la 18.3 e' stata rilasciata il 23 luglio 2018, appena dopo l'emissione delle patch del 17 luglio]. 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).

Novita' della versione 18c

La prima evidente novita' e' nella procedura di installazione: si scarica un image file che contiene una Oracle Home completa.
Questa nuova modalita' offre diversi vantaggi: e' disponibile una modalita' di installazione con RPM (anche se con qualche limitazione...), c'e' la possibilita' di applicare patch e cambiare Oracle Home con il comando rhpctl, ed infine e' possibile utilizzare la Oracle Home in read only.

Se si vuole migrare alla versione 18c un database esistente e' molto importante verificare l'elenco delle fuzionalita' deprecate o desupportate.

Tra le molte nuove funzionalita': CDB Fleet Management, Zero-Downtime Database Upgrade, Automatic In-Memory, ASM Database Cloning, PDB Keystore, APEX 5.1, SQL Enhancements for JSON, ...
L'elenco completo delle nuove funzionalita' e' riportato sulla documentazione ufficiale.

Infine... come dimenticare il cambio di numerazione delle versioni! In un passo solo si e' associato la versione all'anno e si sono saltati il 13 ed il 17: sara' superstizione?

Altre informazioni...

La versione 18c e' stata rilasciata prima su Exadata, poi sui sistemi Engineered e Cloud ed infine on-premise!
Al momento la versione 18c on-premise e' stata rilasciata solo per Linux 64 [NdA il 23 luglio 2018] [NdE il 31 luglio 2018 e' stata rilasciata per Oracle Solaris (SPARC 64-bit)]. Su Exadata era gia' disponibile da febbraio 2018, sugli altri sistemi Engineered e Oracle Public Cloud da marzo 2018. Tutti i rilasci sono per processori x64.
Dal punto di vista tecnico la 18.3 on-premise non e' una fresh install... in realta' il contenuto dello .zip e' la 18.1 (la stessa gia' rilasciata sugli Engineered) e le patch 18.3 rilasciate a luglio 2018 che vengono installate automaticamente.

Sul sito ufficiale Oracle e' disponibile un'ampia documentazione ufficiale tra cui la Installation Guide [NdA sono solo 232 pagine; l'installazione si e' semplificata rispetto alla versione precedente: prima c'era una pagina in piu'].

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, con la 18c non cambia molto ma e' stata inserita la possibilita' di effettuare un PDB clone:

Installazione Oracle 18c - DBCA

Ovviamente la 18c (18.3) e' l'ultimo aggiornamento disponibile: le novita' introdotte nella versione 12c, su cui la 18c si basa, sono notevoli... leggete: architettura Oracle versione 12c, aggiornamenti della versione 12c R2 ed infine C'era una volta...


Titolo: Installazione di Oracle 18c su Linux
Livello: Medio (2/5)
Data: 23 Luglio 2018
Versione: 1.0.1 - 31 Luglio 2018
Autore: mail [AT] meo.bogliolo.name