方式1
[oracle@orcl22 ~]$ cd /u01/app/oracle/product/11.2.0/db_1/bin/
[oracle@orcl22 bin]$ vi /etc/oratab
将orcl:/u01/app/oracle/product/11.2.0/db_1:N
修改成orcl:/u01/app/oracle/product/11.2.0/db_1:Y
[oracle@orcl22 bin]$ vi dbshut
[oracle@orcl22 bin]$ vi dbstart
将dbshut和dbstart中的ORACLE_HOME_LISTNER=$1
修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
[root@orcl22 ~]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
su oracle -c $ORACLE_HOME/bin/dbstart
export ORACLE_UNQNAME=orcl
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
此时dbshut和dbstart即可同时关闭、打开数据库和监听
方式2
[oracle@orcl22 ~]$ cd /u01/app/oracle/product/11.2.0/db_1/bin/
[root@orcl22 bin]# vi /etc/oratab
将orcl:/u01/app/oracle/product/11.2.0/db_1:N
修改成orcl:/u01/app/oracle/product/11.2.0/db_1:Y
[root@orcl22 bin]# vi dbshut
[root@orcl22 bin]# dbstart
将dbshut和dbstart中的ORACLE_HOME_LISTNER=$1
修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
root用户创建脚本
[root@orcl22 ~]# cat /etc/rc.d/init.d/oracle
#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup Script for oracle Databases
# /etc/rc.d/init.d/oracle
export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_UNQNAME=orcl
echo " " >> /var/log/oraclelog
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
case "$1" in
start)
echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
stop)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelogg
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
restart)
echo "-----shutdown oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "-----startup oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo `date +'%Y-%m-%d %H:%M:%S'` >> /var/log/oraclelog
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
*)
echo "Usage: 'basename $0' start|stop|restart"
exit 1
esac
exit 0
脚本设置权限
[root@orcl22 bin]# chmod 755 /etc/rc.d/init.d/oracle
开机启动
[root@orcl22 bin]# chkconfig --add oracle
[root@orcl22 bin]# chkconfig oracle on