Check, Startup e shutdown di Oracle II

Oracle e' un gestore di basi dati relazionali. L'RDBMS Oracle supporta basi dati molto complesse, di grandi dimensioni e ha una notevole diffusione.

In diverse occasioni piu' essere necessario effettuare uno shutdown/reboot dell'RDBMS Oracle (eg. perche' si vuole effettuare un backup fisico a freddo).
Si e' quindi ritenuto opportuno riportare alcune note sui comandi da utilizzare. Poiche' le versioni utilizzate di Oracle sono differenti e differenti sono le possibilita' di configurazione, gli esempi si riferiranno all'utilizzo di Oracle in versione 11g con una configurazione di default (OFA) su un sistema Unix/Linux. Sono riportate le principali differenze relative alle diverse versioni Oracle [NdA dalla 6 alla 12: chi conosce Oracle sa quanto ampio e' questo range] ed ad alcune possibili configurazioni alternative. Oltre allo startup/shutdown del database Oracle sono riportati anche i comandi per il listener di Oracle che consente l'accesso alla base dati da remoto.

Controllo del funzionamento di Oracle

Prima di effettuare uno shutdown di un servizio e' necessario se questo e' attivo! Se non siete in grado di effettuare questo controllo allora e' probabilmente meglio che evitiate di fare lo shutdown. Per controllare il corretto funzionamento di Oracle sono opportune le seguenti verifiche:

Un poco piu' esaustivi/sofisticati sono i controlli seguenti:

In alcune situazioni e' corretto che il database Oracle non sia attivo. Ad esempio riattivare Oracle durante un restore fisico e' pericoloso se non peggio!
Se non sapete cosa state facendo... non fatelo!

Attivazione o startup del database Oracle

Innanzi tutto versioni differenti di Oracle richiedono comandi e modalita' differenti. Quelle riportate sono le piu' recenti e diffuse, nel seguito sono indicate le variazioni relative a versioni precedenti o a configurazioni particolari.

Per attivare Oracle:

Il comando startup ha diverse possibili opzioni (eg. mount, dba) che sono utili per effettuare attivita' di amministrazione sulla base dati... Per i nostri semplici scopi (far partire una base dati) non e' necessario conoscerle.

Disattivazione o shutdown del database Oracle

Per effettuare lo shutdown di Oracle:

Se anziche' con l'opzione immediate si utilizza normal il comando shutdown attende che tutte le connessioni attive sulla base dati si scolleghino. Non e' in generale consigliabile poiche' di frequente utenti ed applicazioni "dimenticano" di scollegarsi. In caso di particolari problemi puo' essere utilizzata l'opzione di abort...

Attivazione del listener Oracle

Per attivare il listener Oracle:

Disattivazione del listener Oracle

Per disattivare il listener Oracle:

Variazioni sul tema - Versioni

Quanto riportato fino ad ora vale per le versione 12c R1, 11g R2, 11g R1, 10g R2 e 10g R1 senza differenze di rilievo.

Nel caso di utilizzo di Oracle RAC o di Oracle Clusterware e' necessario utilizzare i comandi Server Control Utility (SRVCTL):
srvctl [status|start|stop] database -d DB_NAME
srvctl stop instance -d DB_NAME -n HOST_NAME -o immediate
srvctl stop listener
...

Nella versione 9 non e' possibile utilizzare il comando sqlplus / as sysdba ma e' necessario racchiudere tra apici i parametri in questo modo: sqlplus "/ as sysdba" oppure non indicare l'utente e digitare / as sysdba alla richiesta di Login.

Nella versione 7 per attivare Oracle:

Con la versione 6 di Oracle l'amministratore utilizzava il comando sqldba anziche' il Server Manager (svrmgrl).

Con la versione 1 di SQL*Net il comando per la gestione del listener era tcpctl. La versione 1 e' stata mantenuta fino alla versione 7.2 dell'RDBMS Oracle (su cui erano disponibili sia SQL*Net 1 che SQL*Net 2).

L'ambiente grafico per la gestione del database e' chiamato Enterprise Manager, e' un'applicazione web (gestita con un apposito application server) accessibile via browser e tipicamente risponde sulla porta 1158 (eg http://host.domain:1158/em). Dalla versione 10g R2 e' completo ed affidabile, le versioni precedenti un po' meno... L'EM si arricchito di funzionalita' nella versione 11g. Nella versione 12c e' cambiato il nome e l'architettura: l'Enterprise Manager Database Express e' attivo di default sulla porta 5500 ed e' ospitato dal DB stesso.
Vi sono diverse versioni grafiche del Server Manager [NdE usato per attivare/disattivare il DB]... ma non mi piacciono, quindi non ve le racconto! Sappiate che esistono.
Nel colorato mondo Microsoft (NT ed affini) vi sono tanti simpatici strumenti per attivare i servizi (eg. un semaforo). Sono di semplice utilizzo ed e' ridicolo cercare di descriverli a parole...


Variazioni sul tema - Configurazioni

Vi sono innumerevoli variazioni a quanto riportato in precedenza che dipendono da configurazioni particolari utilizzabili ed utilizzate in diversi casi. Alcune variazioni hanno delle ottime ragioni (eg. utilizzare file di parametri differenti per l'utilizzo della base dati durante i batch) altre sono solo complicazioni... ma basta non lasciarsi ingannare: non puo' essere difficile, tutto si puo' trovare!

Possono essere presenti piu' istanze di Oracle... Le istanze vengono scelte impostando la variabile ORACLE_SID.

L'utente unix oracle puo' essere un qualsiasi utente... ad esempio pippo. Quale vantaggio vi sia ad utilizzare l'utente pippo al posto di oracle non lo so ma vedo che e' una tecnica molto diffusa (ovviamente non con pippo ma con altri nomi di utenti dal significato incerto).

I file di configurazione della base dati si trovano sotto $ORACLE_HOME/dbs e si chiamano initSID.ora. Di solito! Innanzi tutto e' possibile utilizzare file di parametri alternativi utilizzando l'opzione PFILE di svrmgrl. Inoltre puo' essere utilizzata l'istruzione di include per leggere alcuni altri parametri (tipicamente le directory dove trovare altri file...).

I file di alert possono essere ovunque anche se generalmente si trovano su $ORACLE_HOME/rdbms/log. In ogni caso sono definiti al boot di Oracle. Spesso sono definiti nel file config incluso nel file di initSID.ora.

Possono essere attivati piu' listener (ovviamente su porte socket differenti). I nomi del listener da utilizzare come parametri al comando lsnrctl possono essere qualsiasi ... Ricercare nel file $ORACLE_HOME/network/admin/listener.ora i nomi dei listener da utilizzare.

Possono essere presenti piu' installazioni di Oracle sul sistema... Ogni installazione puo' avere una versione diversa... Naturalmente ogni versione utilizza una ORACLE_HOME differente.


Conclusioni

Il documento originale che avevo scritto sull'argomento trattava le versioni Oracle 7.x e 6 ed aveva piu' di dieci anni! Per questo nel titolo e' riportata un II. Ho trovato giusto aggiornarlo alle nuove versioni e spero di essere ancora attivo a lungo per scrivere la versione III!


Testo: Startup e shutdown di Oracle II
Data: 1 Maggio 2008
Versione: 1.0.3 - 15 Agosto 2013
Autore: mail@meo.bogliolo.name