为了使Oracle Database, Listener, iSQLPlus, Enterprise Manager随着Linux自动启动,参照网上的做法如下
一.修改/etc/oratab
把$ORACLE_SID:$ORACLE_HOME::处的启动标志改为Y,如下例
orcl:/opt/app/oracle/product/10.2.0/db_1:Y
此一步是指示dbstart是否自动启动数据库
二.建立一个自启动脚本/etc/rc.d/init.d/oracle,内容如下
#!/bin/bash
ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1
LOG=$ORACLE_HOME/oracle.log
case "$1" in
start)
echo "Starting Oracle Database ..."
echo "----------------------------" >> $LOG 2>&1
date +" %T %a %D : Starting Oracle Database as part of system up." >> $LOG 2>&1
su - oracle -c "$ORACLE_HOME/bin/dbstart" >> $LOG 2>&1
echo "Done"
date +" %T %a %D : Finished." >> $LOG 2>&1
echo "----------------------------" >> $LOG 2>&1
touch /var/lock/subsys/oracle
echo "Starting isqlplus ..."
su - oracle -c "$ORACLE_HOME/bin/isqlplusctl start" >> $LOG 2>&1
echo "Starting enterprise manager ..."
su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole" >> $LOG 2>&1
;;
stop)
echo "Stopping Oracle Database ..."
echo "----------------------------" >> $LOG 2>&1
date +" %T %a %D : Stopping Oracle Database as part of system up." >> $LOG 2>&1
su - oracle -c "$ORACLE_HOME/bin/dbshut" >> $LOG 2>&1
echo "Done"
date +" %T %a %D : Finished." >> $LOG 2>&1
echo "----------------------------" >> $LOG 2>&1
rm -f /var/lock/subsys/oracle
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac
此脚本先启动dbstart(内部启动listener),然后再启动isqlplus,em
建立此脚本的连接到/etc/rc5.d(也可能连接到/etc/rc3.d,根据runlevel来定)
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle
ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/K99oracle
修改一下权限:# chmod 755 /etc/rc.d/init.d/oracle
三.修改$ORACLE_HOME/bin/dbstart脚本,修改路径$ORACLE_HOME_LISTNER为正确的路径
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle改为
ORACLE_HOME_LISTNER=/opt/app/oracle/product/10.2.0/db_1
四.重启Linux,验证isqlplus,em是否都能正常使用
[@more@]