Start automatico di Oracle Database 10g all’avvio di Ubuntu Linux
Nel file /etc/oratab impostare il restart flag a “Y”, modificare la linea di configurazione relativa al database che si vuole avviare da
dbname:/u01/app/oracle/product/10.2.0/db_1:N
a
dbname:/u01/app/oracle/product/10.2.0/db_1:Y
Creare lo script di avvio /etc/init.d/dbora (in grassetto i valori da modificare in base all’installazione corrente):
#!/bin/sh # description: Oracle auto start-stop script. # # Set ORA_HOME to be equivalent to the $ORACLE_HOME # from which you wish to execute dbstart and dbshut; # # Set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME. ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 PATH=$PATH:$ORACLE_HOME/bin export ORACLE_HOME PATH ORA_HOME=/u01/app/oracle/product/10.2.0/db_1 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" ;; 'stop') # Stop the Oracle databases: # The following command assumes that the oracle login # will not prompt the user for any values su $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" ;; esac
Assegnare i privilegi allo script:
chmod 750 /etc/init.d/dbora
Creare i link simbolici allo script nelle cartelle relative ai vari runlevel (con il comando ln -s target link_name) [avendo sempre usato Slackware non sono molto esperto del sistema di boot di Ubuntu, se ho scritto cavolate segnalatelo pure nei commenti]:
ln -s /etc/init.d/dbora /etc/rc0.d/k01dbora ln -s /etc/init.d/dbora /etc/rc1.d/k01dbora ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora ln -s /etc/init.d/dbora /etc/rc4.d/S99dbora
al termine dovrebbero esserci i seguenti link simbolici:
lrwxrwxrwx 1 root root 17 2008-07-16 14:16 /etc/rc0.d/k01dbora -> /etc/init.d/dbora lrwxrwxrwx 1 root root 17 2008-07-16 14:16 /etc/rc1.d/k01dbora -> /etc/init.d/dbora lrwxrwxrwx 1 root root 17 2008-07-16 14:16 /etc/rc2.d/S99dbora -> /etc/init.d/dbora lrwxrwxrwx 1 root root 17 2008-07-16 14:16 /etc/rc3.d/S99dbora -> /etc/init.d/dbora lrwxrwxrwx 1 root root 17 2008-07-16 14:16 /etc/rc4.d/S99dbora -> /etc/init.d/dbora
Nota per la “Release 2″: nello script /u01/app/oracle/product/10.2.0/db_1/bin/dbstart c’e’ un bug che imperdirà al listener di avviarsi (l’errore riportato è Failed to auto-start Oracle Net Listener using /ade/vikrkuma_new/oracle/bin/tnslsnr); per risolvere modificare la linea 78 (circa) da:
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle/bin/tnslsnr
a
ORACLE_HOME_LISTNER=$ORACLE_HOME
(script modificato a partire da http://www.oracle-base.com/articles/linux/ AutomatingDatabaseStartupAndShutdownOnLinux.php)