In molti ambienti, è auspicabile che il database Oracle e il listener si arrestino e si avviino automaticamente al riavvio del server. Se hai questo requisito, segui i passaggi successivi per automatizzare l'arresto e l'avvio del database e del listener:
Passaggi per configurare l'avvio/spegnimento automatico
1. Modifica il file /etc/oratab e inserisci una Y alla fine della voce relativa ai database che si desidera riavviare automaticamente al riavvio del sistema. Potresti aver bisogno dei privilegi di root per modificare il file:
# vi /etc/oratab [SID]:[ORACLE_HOME]:Y
La Y alla fine della stringa significa che il database può essere avviato e arrestato dagli script ORACLE_HOME/bin/dbstart e ORACLE_HOME/bin/dbshut.
Nota :con alcuni sistemi Unix (come Solaris), il file oratab si trova solitamente nella directory /var/opt/oracle.
2. Crea lo script del servizio /etc/init.d/dbora . Il contenuto dello script è il seguente. Assicurati di modificare i valori delle variabili ORA_HOME e ORA_OWNER in modo che corrispondano al tuo ambiente. Questo è uno script essenziale di ciò di cui avresti bisogno minimamente per interrompere e avviare un database e un listener:
# vi /etc/init.d/dbora #!/bin/bash # chkconfig: 35 99 10 # description: Starts and stops Oracle processes ORA_HOME=/oracle/app/oracle/product/11.2.0/db_1 ORA_OWNER=oracle case "$1" in 'start') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" su - $ORA_OWNER -c $ORA_HOME/bin/dbstart ;; 'stop') su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" su - $ORA_OWNER -c $ORA_HOME/bin/dbshut ;; esac # End of script dbora
Comprendere il copione
Le righe:
# chkconfig: 35 99 10 # description: Starts and stops Oracle database
sono obbligatori e non semplici commenti poiché descrivono le caratteristiche del servizio dove:
- 35 significa che il servizio verrà avviato nei livelli init 3 e 5 e verrà interrotto negli altri livelli.
- 99 significa che il servizio verrà avviato alla fine dell'elaborazione del livello init
- 10 significa che il servizio verrà interrotto all'inizio dell'elaborazione a livello di init
Il resto della sceneggiatura è abbastanza facile da capire. Il primo caso avvia il listener/DB mentre il secondo caso lo interrompe. Segui i passaggi seguenti per rendere eseguibile lo script e consentirne l'esecuzione automatica all'avvio del sistema.
Rendi eseguibile lo script e abilita l'esecuzione all'avvio
1. Modificare il gruppo del file dbora in modo che corrisponda al gruppo assegnato al proprietario del sistema operativo del software Oracle (solitamente oinstall o dba):
# chgrp dba /etc/init.d/dbora
2. Imposta le autorizzazioni dello script su 755.
# chmod 750 /etc/init.d/dbora
3. Eseguire il seguente comando chkconfig:
# chkconfig --add dbora
Questa azione registra il servizio nel meccanismo del servizio Linux. Questo crea anche i collegamenti simbolici appropriati ai file nella directory /etc/rc.d. Usa l'opzione –list per visualizzare se un servizio è attivo o meno per ogni runlevel:
# chkconfig --list | grep dbora dbora 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Questo output indica che il servizio dbora è attivo per i runlevel 3 e 5. Se è necessario eliminare un servizio, utilizzare –del opzione di chkconfig.
Test dello script
1. Per verificare se lo script dbora funziona, come root esegui quanto segue per fermare il database e il listener:
# /etc/init.d/dbora stop
2. Per testare l'avvio del database e del listener, come root emettere il seguente comando:
# /etc/init.d/dbora start
Pensieri finali
L'automazione dell'arresto e dell'avvio del database Oracle varia a seconda che utilizzi strumenti come software cluster o ASM. La soluzione in questa sezione illustra i passaggi tipici per implementare l'arresto e l'avvio del database negli scenari in cui non si dispone di altri software che gestiscono questa attività.