Le mille ed una... Oracle Option

Oracle e' il DBMS relazionale commerciale piu' diffuso al mondo. Un'elemento importante del suo successo sono le opzioni che ne accrescono le funzionalita' con componenti utili ai DBA o alle applicazioni ospite.
A volte pero' non e' ben noto, neanche agli addetti ai lavori, se un certo componente o una certa funzionalita' fanno parte di una specifica Edition o di una Option.

In questa paginetta cerchiamo di descrivere le opzioni principali dell'RDBMS Oracle chiarendone gli aspetti funzionali per consentire una corretta valutazione dei costi/benefici.

Il documento, nonostante il titolo favoleggiante, e' assolutamente recente ed aggiornato alle ultime versioni di Oracle disponibile [NdA Oracle 12cR2, 19c, 21c]. C'era una volta... Oracle riporta invece la storia delle versioni precedenti.

Edition

Oracle e' l'RDBMS tecnologicamente piu' avanzato e completo con un ottimo supporto; il prezzo e' corrispondente. Gli aspetti relativi al licensing di Oracle sono quindi molto importanti. E' importante utilizzare la licenza corretta per il proprio ambiente per disporre di tutte le funzionalita' necessarie e massimizzare i propri investimenti.

L'RDBMS Oracle e' disponibile in diverse Edition con funzionalita' differenti:

Nella valutazione dei costi dell'investimento, oltre all'Edition ed alle eventuali Option utilizzate, vanno tenuti in conto altri fattori come il numero di processori utilizzati, il core factor, la scelta tra le processor license e le named user, l'utilizzo on-premises o in Cloud IaaS, PaaS e SaaS, la possibilita' del BYOL, le licenze Embedded, il supporto, ... che sono aspetti non trattati in questa paginetta che riporta solo gli aspetti tecnici e funzionali e non quelli commerciali.

Il riferimento completo si trova sulla documentazione ufficiale: Price Lists, Editions, Licensing Licensing DR [NdE aggiornamento alla versione 23c].

Options

Se si utilizza Oracle Enterprise Edition e' possibile utilizzare le Oracle Options. Le Options introducono ulteriori funzionalita' e sono a pagamento. Il riferimento completo si trova sul listino prezzi e sulla documentazione ufficiale.

Il costo di una Option ed il relativo canone di supporto sono diffenti opzione per opzione e vanno verificate sul listino e/o con un commerciale Oracle. Semplificando molto vi sono alcune Option piu' care che hanno un costo pari a circa il 50% della licenza Enterprise (eg. RAC, In-Memory, Advanced Analytics, ...) ed altre con un costo vicino al 25% (eg. Active Data Guard, Partitioning, Real Application Testing, Advanced Compression, Diagnostics Pack+Tuning Pack, ...).

Nel seguito riportiamo un elenco delle opzioni piu' interessanti dal punto di vista tecnico.

RAC

Oracle Option RAC

L'opzione Oracle RAC consente la condivisione, da parte di istanze differenti ed attive su macchine distinte, di pool di dischi comuni. In tal modo sistemi differenti utilizzano le stesse risorse sui dischi. In caso di fault di un sistema, il secondo sistema si sostituisce immediatamente ad esso. Si tratta di una configurazione in cluster Active-Active.
Con la versione Oracle 11g R2 e' stata introdotta la Option RAC One Node. RAC One Node e' simile ad un ambiente di cluster failover e consente l'Omotion (migrazione trasparente della base dati tra i nodi). Questa opzione ha un costo inferiore ma l'istanza e' essere attiva su un solo nodo alla volta. Oracle RAC era una delle poche opzioni disponibili anche sulla Standard Edition ma... dalla versione 19c e' supportata solo piu' con l'Enterprise Edition.

Il RAC e' La Soluzione per la Business Continuity e l'alta affidabilita'. Tecnicamente non vi sono soluzioni migliori, le alternative (eg. failover cluster, RAC One Node) presentano tempi di disservizio superiori.

Partitioning

L'Option Partitioning consente di gestire in modo efficiente tabelle di grandi dimensioni spezzandole in parti, partizioni appunto, piu' piccole e gestibili.
L'implementazione Oracle del partitioning e' particolarmente completa ed efficiente. Su oggetti di grandi dimensioni [NdA ben oltre 1.000.000 di record] le prestazioni possono migliorare di un ordine di grandezza. Di converso utilizzare il partizionamento su tabelle di piccole/normali dimensioni non presenta alcun vantaggio prestazionale ed ha un costo non trascurabile.

Sui VLDB l'opzione del partitioning e' fondamentale.

Diagnostics Pack, Tuning Pack

Le Option Diagnostics Pack, Tuning Pack sono 2 opzioni distinte tra loro che forniscono al DBA strumenti per l'analisi delle prestazioni ed il tuning del database. L'Automatic Database Diagnostic Monitor (ADDM) e l'Automatic Workload Repository (AWR) fanno parte del Diagnostic Pack. L'SQL Tuning Advisor e le funzionalita' automatiche di tuning e di riorganizzazione del DB fanno invece parte del Tuning Pack.

Entrambe queste opzioni sono assolutamente consigliate per tutte le basi dati che non siano banali. Il Diagnostics Pack e' un prerequisito per il Tuning Pack.

Advanced Compression

L'Option Advanced Compression consente di comprimere i dati. Oltre all'advanced row compression sulle tabelle e' possibile comprimere indici e LOB. Anche le utility di backup RMAN e Data Pump sfruttano le possibilita' di compressione offerte da questa option.

Su basi dati di grandi dimensione questa opzione consente significativi risparmi di spazio sia per il database che, spesso ancora piu' importante, per i backup.

Active Data Guard

Oracle Data Guard

Oracle Data Guard mantiene due istanze Oracle, anche geograficamente distanti, allineate tra loro. L'istanza definita primaria e' aperta in lettura e scrittura a tutti gli utenti mentre l'istanza secondaria non e' accessibile ed effettua un allineamento continuo basandosi sui redo log delle transazioni.
Se viene attivata l'opzione Active Data Guard l'istanza secondaria diventa accessibile in sola lettura.

Il Data Guard e' La Soluzione per il Disaster Recovery e NON richiede l'acquisto di nessuna Option, vanno pero' acquistate le licenze Enterprise sia per i sito primario che per quello secondario di DR.
L'Active Data Guard e' invece una Option che consente di verificare in modo molto semplice e diretto l'allineamento delle due istanze. Inoltre e' possibile utilizzare il sito secondario per la reportistica, per eseguire analisi sui dati, ... sfruttando maggiormente in questo modo l'HW e le licenze disponibili.

Advanced Security, Label Security, Database Vault

Le Option Advanced Security, Database Vault, Label Security sono 3 opzioni distinte tra loro che riguardano la sicurezza dei dati.
L'Advanced Security fornisce il Transparent Data Encryption (TDE) e la Data Redaction per proteggere i dati da utilizzi non autorizzati. Il Database Vault implementa una completa Separation of Duty tra gli utenti, anche amministrativi, della base dati. La Label Security consente di utilizzare gli stessi oggetti da parte di utenti con livelli di accesso differenti. Le definizioni appena riportate sono corrette e complete... ma non necessariamente comprensibili a tutti. Facciamo quindi qualche esempio!

Il Transparent Data Encryption (TDE) fa parte dell'opzione Advanced Security. Con il TDE si crittografano i dati su colonne specifiche o a livello di tablespace (data at-rest encryption): quindi un utente root che faccia un grep direttamente sui datafile non riesce a trovare nulla.
Con le politiche di Data Redaction dell'Advanced Security si puo' far cambiare il valore di una colonna che contiene i numeri di carte di credito sostituendo, per esempio, gli ultimi caratteri con "XX XXXX": quindi da SQL alcuni utenti vedrebbero i dati completi ed altri li vedrebbero mascherati.
Molto tempo fa [NdA lo scorso millenio con la versione 8.1] l'opzione Advanced Security veniva distribuita in tre edizioni diverse (Domestic, Upgrade, Export) con lunghezze di chiavi di crittografia differenti; ora sono supportate tutte le lunghezze previste dagli algoritmi standard per le chiavi di encryption. Da giugno 2013 la network encryption e' compresa nell'Oracle Enterprise Edition e non richiede piu' l'Advanced Security.

Con il Database Vault anche le utenze amministrative possono essere limitate nell'accesso ai dati: quindi anche se connessi come SYS non si riesce comunque ad eseguire "SELECT salary FROM erp.employees". In questo modo anche se si e' amministratori di un database non si possono ricavare i dati definiti protetti realizzando cosi' una completa separazione dei ruoli.

Con la Label Security la stessa selezione SQL sulla stessa tabella restituisce valori diversi ad utenti diversi...

E' infine importante ricordare anche Oracle Audit Vault and Database Firewall che non e' una Option dell'RDBMS ma un prodotto Oracle specifico, costituito da due componenti distinti come suggerisce il nome. L'Audit Vault gestisce la raccolta e securizzazione dei log prodotti sia del database che dal sistema operativo. Il DB Firewall e' invece un proxy programmabile che consente di fare packet inspection e segnalare o eventualmente bloccare statement SQL.

Se utilizzate correttamente in un completo progetto di sicurezza aziendale, queste opzioni permettono di integrarsi in un SIEM (Security Information and Event Management) e di soddisfare i requisiti delle piu' recenti e stringenti leggi sulla protezione dei dati (eg. GDPR, PCI DSS, SOX, ISO 27002, ...).

Multitenant

Oracle Option Multitenant

Con l'Option Multitenant e' possibile ospitare piu' istanze di database (PDB: Pluggable Database) all'interno di un unico container chiamato CDB (Container Database). Nell'architettura Multitenant l'istanza CDB mantiene al suo interno piu' PDB utilizzando lo stesso set di processi e la stessa SGA (System Global Area). Dal punto di vista delle applicazioni invece i PDB vengono visti come normali istanze Oracle.

L'utilizzo del multitenant permette un consolidamento molto significativo e risparmi nella gestione. E' quindi un'opzione consigliabile e vantaggiosa quando vi sono molte istanze da consolidare.

Spatial and Graph

L'Option Spatial and Graph consentono di memorizzare ed interrogare dati spaziali sul database.

Si tratta di opzioni verticali usate da specifici programmi (eg. GIS), vanno utilizzate quando richiesto dalle applicazioni.

Database In-Memory

L'Option Database In-Memory permette un accesso velocissimo ai dati sfruttando la tecnica dell'accesso per colonne tipica dei sistemi OLAP (On-Line Analytical Processing) e mantenendo i dati in memoria. Se utilizzata correttamente permette miglioramenti di un'ordine di grandezza nelle query di analisi e migliora anche le prestazioni nelle operazioni OLTP. Non e' necessaria nessuna modifica applicativa per utilizzare In-Memory.

Poiche' non tutte le applicazioni hanno vantaggi prestazionali con questa opzione e' consigliabile effettuare un POC per valutarne i costi/benefici.

Options: Avvertenze per l'uso

La configurazione di un database Oracle richiede competenze tecniche ed esperienze specifiche... Lo stesso vale per l'utilizzo delle Oracle Options.
Un errore molto frequente e' quello di utilizzare una Oracle Option senza accorgersene!
Il problema non e' solo tecnico ma ha un possibile forte impatto economico perche' il costo del licensing Oracle e' significativo.

L'utilizzo di alcune Option (eg. RAC) richiede configurazioni specifiche ed e' impossibile effettuarlo per errore. Altre Option invece sono gia' configurate e potenzialmente attive: basta eseguire una SELECT sulla vista sbagliata o effettuare un backup con una particolare opzione per far scattare i contatori che segnalano l'utilizzo dell'opzione con le relative conseguenze in termini di licenze.
Meglio seguire attentamente le avvertenze per l'uso!

Con una normale installazione vengono installate la maggioranze delle Option del database. Alcune possono essere escluse durante la procedura di installazione ma altre sono sempre presenti. E' responsabilita' del DBA non utilizzarle.

Il solo accesso in lettura alle viste dell'AWR (eg. V$ACTIVE_SESSION_HISTORY) e di tutte quelle derivate (eg. DBA_HIST_ACTIVE_SESS_HISTORY), fa scattare l'utilizzo della Diagnostic Pack Option [NdA utile e' questo articolo]. Sono molteplici i tool, anche di terze parti, che fanno accesso a procedure e viste riservate alle Option Diagnostic e Tuning...
Per evitare utilizzi, anche solo per errore, e' consigliato impostare il parametro CONTROL_MANAGEMENT_PACK_ACCESS=NONE [NdA naturalmente se si sono acquistate le Option relative il parametro puo' essere impostato a CONTROL_MANAGEMENT_PACK_ACCESS=DIAGNOSTIC+TUNING] [NdE il parametro e' disponibile dalla versione 11g di Oracle].

Impostare un parametro di compressione sui tool di backup puo' comportare l'utilizzo della Advanced Compression Option. Con DEFAULT COMPRESS per RMAN e con COMPRESSION=METADATA_ONLY per Data Pump Data non e' richiesta l'opzione di compressione.

L'architettura non multitenant e' stata deprecata. E' quindi opportuno utilizzare l'architettura multitenant anche quando si voglia gestire una singola istanza. Per rispettare il licensing e' necessario definire un solo PDB. Per evitare di creare per errore ulteriori PDB e' fortemente consigliato impostare il parametro:

alter system set max_pdbs=1 scope=both;

Con l'Enterprise Edition l'utilizzo del RAC comporta l'acquisto della licenza relativa alla RAC Option. L'utilizzo del RAC sulla Standard Edition e' compreso nella licenza e NON comporta costi aggiuntivi. Sono tuttavia molto importanti i limiti della licenza SE2: e' utilizzabile solo per un cluster con due nodi, ciascuno con un solo processore fisico. Inoltre la SE2 limita l'esecuzione a 16 thread (8 con il RAC) [NdE ma questo lo fa automaticamente senza impatti per il licensing]. Infine con la 19c il RAC su Standard Edition e' stato desupportato: occhio agli upgrade, si deve passare a Single Instance.

Quando si utilizza un'istanza Oracle in Cloud i TDE e' sempre attivo per tutte le partizioni non di sistema. In questo caso pero' non e' necessario alcun adeguamento con l'acquisto della relativa Option poiche' l'utilizzo del TDE e' gia' compreso nel canone di utilizzo.

La Network Encryption non fa piu' parte dell'opzione Oracle Advanced Security ed e' utilizzabile senza costi aggiuntivi su tutte le versioni supportate.

Maggiori dettagli si possono trovare nella documentazione ufficiale [NdE aggiornamento alla versione 18c].

Aggiornamento importante. Con la 19c, che e' la versione LTS della 12c, vi sono importanti variazioni: il numero dei PDB concessi e' salito a 3 [NdA aggiornamento alla versione 19c].

Varie ed eventuali...

Questo documento e' stato scritto con attenzione ma e' opportuno riferimento alla documentazione ufficiale per verificare i dettagli.

La ragione del titolo?
Si narra che un Commerciale in uno dei suoi lunghi viaggi venne catturato... condannato a morte si salvo' raccontando ogni notte di un'Option differente e rimandando cosi' l'esecuzione fin a quando il Cliente non fu convinto della sua innocenza. I suoi racconti piacquero tanto che il Cliente gli concesse la Commessa piu' ricca [NdA nel testo originale in arabo si parlava di figlia... ma e' ovviamente un liguaggio figurato].


Titolo: Le mille ed una... Oracle Option
Livello: Medio (2/5)
Data: 1 Aprile 2017 🐟
Versione: 1.0.5 - 31 Ottobre 2023 🎃 Halloween
Autore: mail [AT] meo.bogliolo.name