ADOP e' il comando per installare le patch su
Oracle Enterprise Business Suite (eBS)
introdotto nella versione R12.2.
L'applicazione delle patch e' un'attivita' frequente e importante su EBS.
Con ADOP il processo di applicazione delle patch risulta
piu' gestibile e viene minimizzato il disservizio agli utenti
finali.
In questo documento descriviamo ADOP con semplici comandi ed esempi.
Ecco i passi da eseguire per applicare una patch su EBS R12.2:
Quello presentato e' il caso piu' semplice (non necessariamente il piu' veloce) e le variazioni sul tema sono parecchie, ma prima di vederle dobbiamo presentare in maggior dettaglio i componenti di EBS.
Oracle Enterprise Business Suite (eBS)
e' l'ERP (Enterprise Resource Planning)
sviluppato e mantenuto dalla Oracle Corporation.
Oracle eBusiness Suite si basa sui due principali prodotti tecnologici di Oracle:
il database Oracle RDBMS e l'application server Oracle WebLogic sfruttandone appieno le funzionalita'
(eg. PL/SQL, Forms).
Dal punto di vista funzionale EBS contiene centinaia di moduli
(eg. GL: General Ledger, PER: Human Resources, BOM: Bill of Materials, ...) tipici di tutti gli ambienti ERP.
Sono presenti centinaia di Package PL/SQL, applicazioni Java, Forms, script, ...
molti dei quali differenti per ciascuno dei linguaggi supportati.
L'applicazione delle patch e' un'attivita' frequente e che deve essere svolta con attenzione.
Il sito ufficiale su cui tutte le patch sono rese disponibili,
per gli utenti con un contratto di supporto attivo, e'
Oracle MOS (My Oracle Support).
Prima dell'applicazione di una patch e' molto importante verificare tutti i prerequisiti.
Per le patch significative e' opportuno effettuare un clone dell'ambiente di produzione,
applicare la patch sul clone e, solo terminata positivamente un'ampia serie di test su tale ambiente,
si puo' pianificare l'applicazione della patch in produzione.
Nel caso di versioni nazionalizzate, ovviamente normale per i clienti italiani,
dopo avere effettuato la patch per la lingua inglese,
va effettuata quella per la lingua italiana.
Se sono presenti piu' lingue, la patch va applicatata per ogni lingua.
L'applicazione di patch in eBS e' sempre stato un processo complesso
e potenzialmente di lunga durata.
Dalla versione R12.2 e' stata introdotta una nuova modalita' di
applicazione online delle patch: ADOP.
Con la versione R12.2 di EBS vengono mantenuti due file system:
run e patch. I due file system sono utilizzati
rispettivamente per la normale attivita' del sistema e per le attivita'
di patch.
Al termine dell'applicazione positiva di una patch i file system
vengono scambiati riducendo al minimo i tempi di disservizio
per l'applicazione delle patch.
A livello di database vengono mantenute diverse edition
che contengono gli oggetti della base dati: tabelle, indici, packages, ...
Una edition e' quella corrente a cui si collegano le applicazioni
del file system in run.
Nell'edition di patch vengono invece aggiornati
gli oggetti che sono modificati dalla patch.
Con questa separazione tra ambienti presente nello stesso sistema
e' possibile applicare tutte le patch in modalita' online senza
presentare disservizi all'utente finale.
Nella fase finale della patch (cutover) vengono invertiti i ruoli dei
file system ed attivata l'edition corretta con un riavvio degli
ambienti: questa fase richiede un riavvio ma e' limitata nel tempo.
Il comando utilizzato per tutto il ciclo della gestione delle patch
e' adop.
I passi previsti per l'applicazione di una patch sono:
Nel seguito vengono descritti singolarmente.
Dopo aver impostato l'ambiente, scaricato e decompresso le patch nella directory $PATCH_TOP si inizia il ciclo di applicazione delle patch con:
Il comando effettua tutti i controlli necessari e prepara il sistema per l'applicazione delle patch.
Con il comando:
Vengono applicate le patch 123 e 456 al file system ed alla db edition di patch.
Poiche' il numero di oggetti da trattare e' potenzialmente molto elevato e' possibile
eseguire piu' task in parallelo. Naturalmente un numero elevato di task rende piu'
veloce l'applicazione della patch ma rallenta le altre attivita' presenti
sul sistema.
La fase di Apply ha una durata molto variabile a secondo della complessita'
delle patch installate, dalla quantita' di oggetti modificati,
dalla durata delle ricompilazioni, ...
Nel caso di patch NLS (versioni nazionalizzate) e' consigliabile prima eseguire il patching della versione in inglese e quindi applicare le patch specifiche a tutti i linguaggi configurati. Le patch nazionalizzate vanno sempre poste nella directory $PATCH_TOP con nome xxx_I (per l'italiano). La fase di apply sara' poi eseguita con il comando:
L'installazione come hotpatch era molto diffusa con le versioni precedenti
di EBS perche' era l'unica che non prevedeva disservizi.
Con la versione R12.2 l'esigenza e' meno sentita ma e' comunque possibile
utilizzare l'opzione apply_mode=hotpatch.
E' possibile installare le patch alla vecchia maniera
utilizzando l'opzione apply_mode=downtime.
Queste due modalita' non sono molto utilizzate ed e' quindi
sconsigliabile richiamarle a meno che non siano esplicitamente
riportate nelle note della patch o siano consigliate dal supporto Oracle.
Questa fase non e' strettamente necessaria poiche' i passi corrispondenti verrebbero comunque eseguiti nella fase successiva. Tuttavia e' consigliabile eseguirla in modo esplicito poiche' rende la fase di cutover piu' rapida:
Con questo comando vengono eseguite tutte le DDL e le ricompilazioni di packages necessari.
Questa fase esegue la transizione dall'ambiente corrente al nuovo ambiente con le patch. Questa e' l'unica fase che effettua un riavvio degli application server e presenta un disservizio. Per eseguirla:
Al termine del cutover le patch sono state installate ed il sistema e' nuovamente disponibile per gli utenti. La durata della fase di cutover generalmente e' piuttosto ridotta e non dipende molto dalla complessita' delle patch applicate; dipende piuttosto dalle prestazioni del sistema e della configurazione.
Anche questa fase non e' obbligatoria... viene automaticamente eseguita all'avvio della prossima patch. Tuttavia e' possibile richiamarla esplicitamente per rimuovere le vecchie edition dalla base dati:
E' possibile passare al cleanup l'opzione cleanup_mode=full. Con tale opzione vengono eliminati il maggior numero di oggetti dalle edition del database liberando la massima quantita' di spazio; tuttavia richiede molto piu' tempo rispetto alla modalita' standard.
ADOP ha un'ulteriore possibile opzione che puo' essere utilizzata per
cancellare l'applicazione di una patch: abort!
Puo' essere richiamata in qualsiasi punto della fase di patch
prima del cutover e,
poiche' e' fortemente consigliato eseguire successivamente un
cleanup completo, il comando e':
Problemi? Mai nessuno!
Beh se insistete...
Il problema piu' comune e' quello della mancanza di spazio. Puo' verificarsi sia a livello di database che di file systems. Nel primo caso e' utile abortire le patch in corso ed effettuare un cleanup full ma se non basta... liberare spazio e/o allargare il DB. Nel secondo caso... liberare spazio e/o allargare i FS!
Quando si verifica un errore tipicamente lo si analizza, lo si risolve e si prosegue. Certo e' piu' facile a dirsi che a farsi... pero' questo fa parte del mestiere di vivere.
Nel caso in cui si siano creati disallineamenti tra il file system run e patch (magari provocati appunto da molteplici ripartenze) e' necessario utilizzare adop phase=fs_clone. fs_clone richiede molto spazio libero, e' di lunga durata e, naturalmente, anch'esso puo' fallire. Se fallisce fs_clone si puo' riparire dallo stesso punto o dall'inizio [NdE force=yes] ...
L'installazione delle patch e' tipicamente suggerita dal supporto in seguito all'apertura di un SR (Service Request). Se una patch non puo' essere installata, e sono stati esclusi tutti i problemi di tipo sistemistico, tipicamente si aggiorna la SR o se ne apre una.
Documentazione? Link utili? Nulla di tecnico in italiano tranne... questo documento!
Sono fondamentali i documenti contenuti su Metalink/My Oracle Support. E' impossibile elencarli tutti, quello che segue e' una prima guida (sono riportati solo i titoli dei documenti poiche' l'accesso al MOS richiede un'utenza autorizzata):
I seguenti link sono molto utili come riferimento sulle le ultime versioni disponibili di eBS e lo stack tecnologico: Your server stinks! Steven Chan Blog
Un'ultima cosa importante proposito di eBS: Buona fortuna!
Titolo: ADOP: Oracle EBS R12.2 online patching
Livello: Avanzato
Data: 1 Aprile 2016
Versione: 1.0.1 -
1 Aprile 2017
Autore:
mail [AT] meo.bogliolo.name