今天我们继续来说怎么开机自动启动oracle,首先我们需要修改/etc/oratab文件
$vi /etc/oratab
找到#orcl:/opt/oracle/oracle11g/product/11.2.0/dbhome_1:N这一行
改为:
orcl:/opt/oracle/oracle11g/product/11.2.0/dbhome_1:Y
也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。
然后我们在文件中输入如下内容
#!/bin/sh ### BEGIN INIT INFO # Provides: oracle # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the oracle daemon # Description: starts oracle using start-stop-daemon ### END INIT INFO ORA_HOME=/opt/oracle/oracle11g/product/11.2.0/dbhome_1/ ORACLE_SID=orcl PATH=$PATH:$ORACLE_HOME/bin 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: echo "Starting Oracle Databases ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >>/var/log/oracle echo "Done" # Start the Listener: echo "Starting Oracle Listeners ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >>/var/log/oracle echo "Done." echo "Starting emctl dbconsole ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting emctl dbconsole as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle echo "Done." echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Finished." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; 'stop') # Stop the Oracle Listener: echo "Stoping Oracle Listeners ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >>/var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle # Stop the Oracle Database: echo "Stoping Oracle Databases ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >>/var/log/oracle echo "Done." echo "Stoping emctl dbconsole ... " echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Starting emctl dbconsole as part of system up." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle echo "Done." echo "" echo "-------------------------------------------------" >> /var/log/oracle date +" %T %a %D : Finished." >> /var/log/oracle echo "-------------------------------------------------" >> /var/log/oracle ;; 'restart') $0 stop $0 start esac
然后保存文件,修改文件权限
[duxing:~]$ sudo chmod 755 /etc/init.d/oracle
然后放到启动脚本中
[duxing:~]$ sudo update-rc.d oracle defaults 99
这样就可以了,下面再介绍几个常用的命令
[duxing:~]$ oracle restart #重启oracle [duxing:~]$ oracle stop #停止oracle [duxing:~]$ sudo update-rc.d oracle remove #删除oracle的开机启动
还有一种方法可以开机启动的方法,大家可以参考一个参考资料中的第三篇文章,那里的方法是不需要修改/etc/oratab文件的。下一篇我会说一下我遇到的几个问题。
参考资料:
http://blog.itpub.net/29140875/viewspace-769223/