ODA for DBAs

L'ODA (Oracle Database Appliance) e' un sistema ingegnerizzato dalla Oracle Corp. per ospitare basi dati Oracle.

Si tratta di un sistema semplice da installare e da gestire che al tempo stesso offre ottime prestazioni, una completa alta affidabilita' grazie all'assenza di SPOF e constente un notevole risparmio in TCO. Anche se la maggioranza delle operative sono semplificate per ottenere il massimo da un'ODA, l'esperienza di un buon DBA (Database Administrator) e' opportuna.

Il documento presenta in modo semplice e veloce i principali aspetti di ODA di interesse di un DBA organizzati nei seguenti capitoli: Introduzione, Progettazione e sizing, Configurazione con OAM, Installazione, Utilizzo del sistema, OAKCLI, Virtualized Platform, Patching, Manutenzione, Varie ed eventuali.

Questo documento e' indirizzato ad un pubblico DBA adulto: una buona conoscenza di Oracle RDBMS, OEL e di OVM sono un prerequisito obbligatorio. Un documento introduttivo sull'ODA e' ODA for Dummies.
Nel documento fa riferimento all'ODA X6-2-HA aggiornato al Bundle 12.1.2.10.0 ma gli aspetti riportati, mutatis mutandos, sono validi anche per le altre versioni e modelli.

Introduzione

ODA X6-2-HA - Oracle Database Appliance L'ODA e' costituita da due server x86 e da uno storage integrato [NdE vale per tutte le versioni ODA X3, X4, X5 fino alla piu' recente X6-2-HA]. Le diverse versioni di ODA rilasciate rappresentano ogni volta la miglior tecnologia HW/SW base ottimizzata per l'RDBMS Oracle (molte componenti sono comuni con i sistemi ingegnerizzati di fascia piu' alta: gli Exadata) ed indirizzata a sistemi di produzione di medie dimensioni.
Dal punto di vista tecnico infatti sono utilizzate le teconologie piu' recenti per ottenere il massimo delle prestazioni (eg. dischi SSD) ed il massimo dell'affidabilita' (eg. RAC) su un ambiente di facile installazione e gestione (eg. OAKCLI).

Su ODA possono essere configurate istanze Oracle Single Instance, RAC one node e RAC, soluzione ques'ultima che consente di disporre di un'istanza in alta affidabilita' e con le massime prestazioni.

Su ODA e' possibile scegliere il numero di core attivati ed utilizzati dalle istanze di database. L'impostazione del numero di core e' effettuata all'installazione e puo' essere aumentata on-demand con una semplice richiesta al supporto (ma non puo' essere ridotta). Questa scelta e' molto importante dal punto di vista tecnico ed ancora di piu' dal punto di vista del licensing.

Sono possibili due modalita' di utilizzo dell'ODA:

Progettazione e sizing

L'utilizzo di un'applicance offre notevoli vantaggi ma ha anche qualche limitazione. Molte scelte sono limitate a quanto previsto dai progettisti sul modello acquistato e' quindi importante fare le scelte giuste!

L'ODA e' disponibile in diversi modelli con caratteristiche HW significativamente differenti e possibili espansioni. Il modello piu' recente e completo e' l'ODA X6-2-HA disponibile nei formati Base System, Full Shelf e Double Shelf. Per maggiori dettagli si faccia riferimento alla documentazione ufficiale.

Anche le scelte sulla configurazione SW sono molto importanti.
E' possibile installare l'ODA come Bare Metal o in configurazione Virtualized. Nella configurazione Virtualized viene utilizzato l'ambiente di virtualizzazione Oracle VM. Le istanze Oracle vengono allocate sul dominio ODA_BASE mentre le altre VM vengono utilizzate per ospitare i servizi applicativi sfruttando cosi' tutte le CPU a disposizione.

Per la configurazione dello storage (tutto a stato solido su X6-2) e' possibile impostare la High Redundancy o la Normal Redundancy rispettivamente con mirroring triplo o doppio.

La configurazione del backup puo' essere Internal o External. Nella maggior parte dei casi si consiglia la configurazione con External Backup sia per risparmare prezioso spazio disco che per una maggiore sicurezza sui dati.

Nell'installazione delle istanze di database le scelte possibili sono: RAC, RAC One Node e Single Instance.

Le scelte indicate sono molto importanti e portano a configurazioni differenti tra loro e tra cui non si puo' mediare.
Durante l'installazione e' necessario scegliere tra l'effettuazione dei backup in modalita' Internal oppure External. E' inoltre necessario scegliere tra la ridondanza normale o elevata per il mirroring dei dischi. La scelta comporta una diversa assegnazione dei dischi ai disk group sull'ASM. Lo spazio disco e' comune sia per l'allocazione dei database che per la configurazione dei pool di storage per le VM. Sul modello X6-2-HA con il triplo mirroring e senza espansioni lo spazio utilizzabile per i dati e' di 1.2TB: la corretta progettazione e' quindi molto importante.

L'ODA e' un sistema ottimale per progetti di consolidamento e rightsizing. Tali progetti richiedono una buona gestione e competenze tecniche per risolvere tutte le problematiche di migrazione ed upgrade di database Oracle.

Oracle Appliance Manager (OAM) - Configurazione

Prima ancora di procedere all'installazione fisica e' opportuno predisporre la configurazione. Su ODA con l'Oracle Appliance Manager (OAM) tutti i passi sono guidati e l'intera configurazione, ottimizzata per l'HW disponibile, viene svolta in automatico. OAM si scarica dal sito ufficiale.

Quando viene lanciato OAM [NdA se non potete lanciare il .bat o il punto .sh fornito: java -jar onecommand.jar config] presenta la scelta sul tipo di configurazione, l'indicazione del modello ed il tipo di ambiente (fisico/virtualizzato):

ODA-OAM Tipologia configurazione

Se si sceglie il tipo di configurazione Custom sono presenti piu' opzioni di configurazione:

ODA-OAM Configurazione sistema ODA-OAM Configurazione custom

La videata successiva richiede i dettagli per la configurazione in rete del sistema.
Bastano infine pochi elementi per far creare un'istanza perche' si utilizzano template di configurazione:

ODA-OAM Configurazione networking ODA-OAM Configurazione istanza

La configurazione puo' essere salvata su file (e' un file di testo) per essere modificata e controllata piu' volte. Se invece si prosegue i passi successivi sono effettuate in automatico sull'ODA: la verifica dei parametri, l'installazione e la configurazione.

Installazione

La configurazione Hardware e l'installazione iniziale non sono complesse e, sopratutto, richiedono un tempo molto limitato.
Si tratta di collegare i due nodi tra loro con heartbeat del RAC ed allo storage. Le connessioni alla rete pubblica sono in bonding per non avere SPOF anche sulla connessione di rete. L'ultima coppia di cavi e'... l'alimentazione elettrica!
Il sistema operativo dei due nodi e' un Oracle Enterprise Linux (OEL). OEL ha le stesse caratteristiche della diffusa distribuzione Red Hat e le versioni sono le stesse; una peculiarita' di OEL e' il kernel Oracle Unbreakable, ma le altre differenze sono minime. L'installazione si basa sul classico anaconda: ODA-OEL Installazione Linux

Terminata la configurazione di base viene caricato il Bundle piu' aggiornato che contiene il software completo della Grid Infrastructure e dell'RDBMS Oracle scaricabile dal sito ufficiale. La fase di caricamento e' analoga a quella di patching descritta nel seguito con un unpack ed un deploy.

La documentazione completa e' disponibile sul sito ufficiale.

Utilizzo del sistema

Una volta installata l'ODA e' immediatamente utilizzabile.
Le due lame sono due normali sistemi linux e l'installazione crea una normale istanza Oracle (tipicamente in RAC ma dipende dalla configurazione impostata). Anche nel caso di utilizzo della configurazione virtualizzata gli ambienti OVM sono immediatamente disponibili e possono essere create nuove VM.

L'installazione sul file system ha naturalmente la parte di Grid Infrastructure e di database. Utenze e gruppi sono comuni per tutti. Le database home sono tipicamente distinte per istanza ma e' un default che puo' essere variato.
Vengono utilizzati gli OMF su ACFS il path di partenza e' /u01/app (eg. ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1).
La password di default per gli utenti Unix grid, oracle, e per gli utenti Oracle sys, system e' welcome1. La password per l'accesso ILOM e' changeme. Ovviamente sono tutte da cambiare!

L'ASM gestisce lo spazio disco su tre distinti disk group:

Lo spazio viene reso disponibile su ACFS:

 oakcli show fs
      Type     Total Space  Diskgroup Mount Point              
      ext3          29757M            /                        
      ext3            486M            /boot                    
      ext3          59515M            /opt                     
      ext3          99193M            /u01                     
      acfs         732160M       DATA /u02/app/oracle/oradata/datastore                
      acfs          79872M       RECO /u01/app/oracle/fast_recovery_area/datastore
      acfs          27648M       REDO /u01/app/oracle/oradata/datastore

L'Enterprise Manager si raggiunge dall'URL standard: https://hostname:5500/em o https://hostname:1158/em a seconda delle versioni di Oracle (12c o 11g).

Come ultima cosa, ma non da ultima per importanza, naturalmente da shell si puo' fare tutto!

# uname -a # df -k # top # su - oracle $ sqlplus

OAKCLI

L'interfaccia da linea di comando per gestire l'ODA e' OAKCLI.

Da tale interfaccia e' possibile controllare e modificare ogni aspetto della configurazione dell'ODA.
Il path del comando e' /opt/oracle/oak/bin/oakcli. La sintassi e' semplice (cfr. documentazione ufficiale):

# /opt/oracle/oak/bin/oakcli show version -detail # /opt/oracle/oak/bin/oakcli show databases # /opt/oracle/oak/bin/oakcli show fs

Particolarmente semplice e' la creazione di un database:

# oakcli create database -db testdb -version 12.1.0.2 Please enter the 'root' password : ... Please select one of the following for Database Deployment [1 .. 3]: 1 => OLTP 2 => DSS 3 => In-Memory Selected value is : OLTP Please select one of the following for Database Deployment [1 .. 3]: 1 => EE : Enterprise Edition 2 => RACONE 3 => RAC Selected value is : RAC ...

Con oakcli si riescono ad effettuare praticamente tutte le operative di gestione (eg. oakcli resize dbstorage -data 10) anche se c'e' qualche eccezione che richiede l'uso di comandi del sistema operativo (eg. /sbin/acfsutil size +10G /mycloudfs).

Tutti i comandi con oakcli lanciati sono riportati nel log: /opt/oracle/oak/log/HOSTNAME/client/oakcli.log

ILOM

Andando sempre piu' in basso... l'ILOM!

La connessione sull'ILOM si utilizza raramente ma e' necessaria nella configurazione iniziale o per verificare il corretto riavvio quando sono necessari reboot durante l'applicazione dei Bundle. Premendo il tasto "Remote Console" viene visualizzata la console:

Virtualized Platform

ODA puo' essere utilizzata anche per ospitare ambienti virtualizzati (dalla versione 2.5). In questo caso viene utilizzato l'ambiente di virtualizzazione OVM per creare e gestire le VM richieste. L'architettura di OVM e' basata su Xen. ODA viene fornita dalla factory nella configurazione bare metal, se si vuole utilizzare la modalita' virtualized sono necessari ulteriori passi di installazione (comunque completamente descritti nella documentazione ufficiale).

Virtualized architecture on ODA

Rispetto ad una configurazione Xen/OVM tradizionale, che prevede sull'hypervisor il dominio Dom0 ed i domini DomU per le VM, e' presente un ulteriore dominio oakDom1 [NdE da interfaccia oakcli il nome utilizzato e' ODA_BASE] cui vengono associate le risorse dedicate alla base dati. Su ODA non si utilizza la console dell'OVM Manager e la gestione di tutte le VM viene effettuata da linea di comando con oakcli.
Sono disponibili i repository basati sui dischi locali (limitati come dimensioni) ed un repository shared allocato con ACFS sul Volume Group DATA.
Le CPU assegnate ad ODA_BASE sono quelle su cui si basa il licensing dell'RDBMS Oracle. Sulle restanti CPU vengono tipicamente create VM per i servizi applicativi ottenendo un elevato grado di consolidamento e fruttando in tal modo tutto l'HW disponibile senza costi aggiuntivi per il licensing.

# oakcli show repo # oakcli show cpupool -node 0 # oakcli show cpupool -node 1 # oakcli show vm # oakcli configure repo odavmrepo -incsize 10G

La creazione e la gestione delle VM con OAKCLI e' particolarmente semplice. Per la creazione e' possibile utilizzare diversi parametri opzionali (eg. CPU, failover, scelta del SO: WIN_2003, WIN_2008, WIN_7, WIN_VISTA, OL_4, OL_5, OL_6, RHL_4, RHL_5, RHL_6, SOLARIS_10, SOLARIS_11, ...):

# oakcli configure vm vm-test -vcpu 2 -memory 4096 -os OL_6 # oakcli migrate vm vm-test # oakcli stop vm vm-test

Patching

Con l'ODA l'attivita' di patching si effettua con l'installazione di un pacchetto unico che contiene aggiornamenti sul firmware, sul sistema operativo, sull'infrastruttura e sui database: il Bundle.

I Bundle vengono emessi con cadenza indicativamente trimestrale. Le patch vanno scaricate ed applicate seguendo la nota 888888.1 del sito di supporto.
E' opportuno utilizzare sempre l'ultimo Bundle disponibile. In generale e' possibile applicare un Bundle partendo da una qualsiasi versione precedente; ma ci sono importanti eccezioni [NdA Bundle successivi alla 12.1.2.6 (2016-02) richiedono il Bundle 12.1.2.6 perche' con esso viene cambiata la versione di SO ed gli stessi comandi di applicazione dei Bundle].

Vediamo come esempio l'installazione di una patch:

# Verificare le versioni installate oakcli show version -detail # Copiare la patch su /tmp su entrambe i nodi oakcli unpack -package /tmp/p25499210_1212100_Linux-x86-64_1of2.zip oakcli unpack -package /tmp/p25499210_1212100_Linux-x86-64_2of2.zip oakcli update -patch 12.1.2.10.0 --verify # Installazione dei tre componenti oakcli update -patch 12.1.2.10.0 --server --local oakcli update -patch 12.1.2.10.0 --storage oakcli update -patch 12.1.2.10.0 --database # Verifica finale oakcli show version -detail oakcli inventory -q

La maggioranze delle patch si installano automaticamente su entrambe i nodi ed i log sono raccolti in /opt/oracle/oak/log/HOSTNAME/patch/BUNDLE.
L'applicazione delle patch sul server richiede lo spegnimento di un sistema alla volta (i database configurati in RAC continuano a dare servizio se necessario); l'applicazione delle patch sullo storage richiede il fermo di entrambe i sistemi ed infine la parte dell'RDBMS viene applicata in modalita' rolling per le istanze in RAC.

Su ODA e' opportuno evitare installazioni di pacchetti o strumenti esterni. Durante un'upgrade successivo potrebbe essere necessario rimuoverli... o peggio!

INFO: 2016-10-11 22:23:27: Please uninstall the RPM : screen.x86_64
INFO: 2016-10-11 22:23:27: Please uninstall the RPM : htop.x86_64
INFO: 2016-10-11 22:23:27: Please uninstall the RPM : ncpa.x86_64

Nel caso di blocco nell'esecuzione di un Bundle, se non si rientra nei casi descritti dal documento ID 888888.1, si puo' ripulire con oakcli update -patch 12.1.2.8.0 --clean ed aprire una SR.

L'inventory di tutto il software e' il file /opt/oracle/oak/pkgrepos/System/system_repos_metadata.xml che contiene i dettagli dei Bundle applicati. Con il comando tree /opt/oracle/oak/pkgrepos/ -L 3 si ottiene facilmente l'elenco.

Dopo diverse applicazioni di Bundle lo spazio disco libero potrebbe ridursi. E' possibile rimuovere dal repository i vecchi bundle con (ID 1681062.1):
  oakcli manage cleanrepo --ver 2.8.0.0.0

Versioni

Dal punto di vista Hardware sono stati rilasciati diversi modelli di ODA: v1, X3-2, X4-2, X5-2, X6-2-HA, X7-2-HA, ... con caratteristiche e potenzialita' via via crescenti. Tutti i modelli sono costituiti da due server e consentono configurazioni RAC in alta affidabilita'. Fin dalle prime versioni sono presenti dischi allo stato solido. Sugli ultimi modelli tutto lo storage e' su SSD e sono possibili estenzioni esterne.
La serie X6-2 e' anche disponibile nelle versioni S / M / L costituite da una sola lama quindi utilizzabili solo per configurazioni Single Instance; su questi modelli c'e' la possibilita' di utilizzare la licenza Standard Edition 2 (SE2) ed utilizzano una differente interfaccia di amministrazione (ODACLI, ODAADMCLI). Sulla serie X7-2 sono disponibili le versioni S / M con un server e la versione HA con due.
L'elenco di tutti i modelli di ODA e' riportato sull'ODA history.

Dal punto di vista Software i rilasci si basano su bundle che vengono emessi tipicamente ogni trimestre e raccolgono tutte le novita' sia in termini di HW (eg. nuovi modelli) che di aggiornamento SW (eg. PSU).
Dalla versione 2.5 e' stato introdotta la configurazione virtualizzata basata su OVM. La versione la 2.8 (2013-11) e' stata emessa in corrispondenza con la disponibilita' di ODA X4-2. La versione 2.8 introduce il supporto delle VLAN e la possibilita' di utilizzare nella modalita' Virtualized lo shared repository anziche' i limitati dischi locali. Dal 2015-02 e' disponibile la versione 12.1.2.2 in corrispondenza della disponibilita' di ODA X5-2. Con la versione 12 dell'infrastruttura grid cambia la modalita' di allocazione dello spazio per i database: e' utilizzato l'ACFS anziche' l'ASM, in questo modo e' possibile utilizzare la funzionalita' di snapshot per il clone delle basi dati. Con la versione 12.1.2.6 cambia la versione di sistema operativo (da OEL 5.11 a OEL 6.7). Con la versione 12.1.2.9 il sistema operativo passa in 6.8.
L'elenco di tutti i bundle e' riportato sul Bundle history.

Licensing

L'aspetto del licensing e' molto importante con le basi dati Oracle. L'ODA permette di licenziare i soli processori necessari al business: da un minimo di due fino al totale HW disponibile.

Nella configurazione Bare Metal il numero di core abilitati e' definito in fase di installazione, i core non licenziati vengono disattivati e non sono disponibili. Il numero di core attivi puo' essere eventualmente aumentato successivamente, con una semplice richiesta al supporto, ma non puo' essere ridotto.
Nella configurazione Virtualized i core licenziati vengono assegnati al dominio ODA_BASE che ospita le istanze Oracle. Gli altri core sono assegnati alle VM dei domini utente.
In entrambe le configurazioni quindi ODA consente una gestione flessibile del numero di processori utilizzati dalle istanze Oracle e questo e' un aspetto molto importante da tenere in conto nella scelta del modello HW su cui installare l'RDBMS Oracle.

Sull'ODA X6-2 S/M/L, modelli non trattati in questo documento, e' possibile utilizzare la Standard Edition 2 anziche' l'Enterprise Edition. Si tratta di modelli costituiti da una sola lama U1 con un server, uno o due processori e differenti combinazioni di storage.
Con la versione X7-2 la possibilita' di utilizzare la SE2 e' stata estesa anche al modello HA.

Manutenzione

Grazie all'ingegnerizzazione integrata l'ODA e' un sistema molto robusto, con caratteristiche di elevato HA e non necessita di manutenzione se non l'aggiornamento del software con il patching.

Nel caso di rottura di un componente il demone OAK segnala l'errore. Molti componenti possono essere sostituiti a caldo [NdA i dischi sono CRUs (Customer Replaceable Units), quindi possono essere sostituiti a caldo dal cliente stesso], avendo l'avvertenza di dichiarare comunque una finestra di manutenzione in caso di problemi.

Nella valutazione dei tempi di installazione delle patch, per precauzione, si applica le legge di Hofstadter...

Varie ed eventuali

Sull'ODA e' opportuno evitare customizzazioni degli ambienti limitando le personalizzazioni e seguendo sempre le guidelines fornite da Oracle.

L'ODA mantiene ancora piu' log di una normale installazione. Oltre ad una corretta configurazione dell' ARDCI e' utile il documento: ODA (Oracle Database Appliance): Cleanup trace and log files Using purgeODALog Tool (Doc ID 2081655.1). In pratica con un unico comando si gestiscono un po' tutti i log:

00 02 * * * /opt/utils/purgeODALog -orcl 20 -tfa 10 -osw 10 -oak 10 		## aggressive
#00 02 * * * /opt/utils/purgeODALog -orcl 90 -tfa 90 -osw 90 -oak 90		## conservative
#00 02 * * * /opt/utils/purgeODALog -orcl 90 -tfa 90 -osw 90 -oak 90 -dryrun	## very conservative: does nothing ;-)

Sempre sulla pulizia dello spazio e' disponibile anche il documento: How To Avoid Disk Full Issues Because OPatch Backups Take Big Amount Of Disk Space. (Doc ID 550522.1) In pratica bisogna lanciare il comando: opatch util cleanup


Titolo: ODA for DBAs
Livello: Avanzato (3/5)
Data: 14 Febbraio 2016
Versione: 1.0.4 - 17 10 17
Autore: mail [AT] meo.bogliolo.name