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.
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! 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.
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...
Per attivare il listener Oracle:
Per disattivare il listener Oracle:
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):
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 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.
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!
Se non sapete cosa state facendo... non fatelo!
[NdE le altre variabili necessarie sono ORACLE_HOME, PATH ed LD_LIBRARY_PATH
vengono tipicamente impostate sul .profile/.bash_profile dell'utente]
startup
exit
shutdown immediate
exit
srvctl [status|start|stop] database -d DB_NAME
srvctl stop instance -d DB_NAME -n HOST_NAME -o immediate
srvctl stop listener
...
connect internal
startup
exit
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...
Testo: Startup e shutdown di Oracle II
Data: 1 Maggio 2008
Versione: 1.0.3 - 15 Agosto 2013
Autore: mail@meo.bogliolo.name