四、Oracle启动&停止脚本
1. 在 /etc/init.d/ 下创建文件oracle,内容如下:
复制代码 代码如下:
lsnr_port=33033 -->监听端口
dbuser=oracle -->数据库启动用户
SID_NAME=YNGYA -->数据库实例名
====================================================
#!/bin/bash
lsnr_port=33033
dbuser=oracle
SID_NAME=YNGYA
function start() {
su - $dbuser -c "export ORACLE_SID=$SID_NAME;sqlplus /nolog << EOF
connect / as sysdba
startup
quit
EOF"
#The tnslsnr must be running on both two nodes.
chk_lsnr=`netstat -anp 2>/dev/null | grep tnslsnr | grep $lsnr_port | wc -l`
if [ $chk_lsnr -eq 0 ];then
echo "---------------------------------------------------------------------------------"
echo "No listener found,starting listener..."
echo "---------------------------------------------------------------------------------"
su - $dbuser -c "lsnrctl start"
else
echo "---------------------------------------------------------------------------------"
echo "The listener is already running,no need to startup..."
echo "---------------------------------------------------------------------------------"
fi
}
function stop() {
#Only the proccesses of a database need to stop
su - $dbuser -c "lsnrctl stop"
su - $dbuser -c "export ORACLE_SID=$SID_NAME;sqlplus /nolog << EOF
connect / as sysdba
shutdown immediate
quit
EOF"
}
function status() {
chk_lsnr=`netstat -anp 2>/dev/null | grep tnslsnr | grep $lsnr_port | wc -l`
if [ $chk_lsnr -eq 0 ];then
echo "Oracle listener is NOT running!"
exit 1
else
echo "Oracle listener is running OK!"
fi
chk_sid=`ps axw | \
grep $SID_NAME | \
grep -E "\
ora_pmon|\
ora_lgwr|\
ora_dbw[0-9]*|\
ora_ckpt|\
ora_smon|\
ora_reco|\
ora_qmn[0-9]*" |\
grep -v grep | wc -l`
if [ $chk_sid -lt 7 ];then
echo "Oracle SID : $SID_NAME is checked by ERROR!"
exit 1
else
echo "Oracle SID : $SID_NAME is running OK!"
return 0
fi
}
case "$1" in
"start")
echo "Startting Oracle Database : $SID_NAME ..."
start
;;
"stop")
echo "Stopping Oracle Database : $SID_NAME ..."
stop
;;
"status")
status
;;
*)
echo "Usage : `basename $0` {start | stop | status}"
exit 0
;;
esac
2. 改变文件权限
# chmod 755 /etc/init.d/oracle
3. 添加服务
# chkconfig --level 35 oracle on
4. 需要在关机或重启机器之前停止数据库,做一下操作
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle //关机
# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle //重启
5. 使用方法
# service oracle start //启动oracle
# service oracle stop //关闭oracle
# service oracle status //查看oracle状态
6. 测试
===================
FTP开机启动
chkconfig vsftpd on
1. 在 /etc/init.d/ 下创建文件oracle,内容如下:
复制代码 代码如下:
lsnr_port=33033 -->监听端口
dbuser=oracle -->数据库启动用户
SID_NAME=YNGYA -->数据库实例名
====================================================
#!/bin/bash
lsnr_port=33033
dbuser=oracle
SID_NAME=YNGYA
function start() {
su - $dbuser -c "export ORACLE_SID=$SID_NAME;sqlplus /nolog << EOF
connect / as sysdba
startup
quit
EOF"
#The tnslsnr must be running on both two nodes.
chk_lsnr=`netstat -anp 2>/dev/null | grep tnslsnr | grep $lsnr_port | wc -l`
if [ $chk_lsnr -eq 0 ];then
echo "---------------------------------------------------------------------------------"
echo "No listener found,starting listener..."
echo "---------------------------------------------------------------------------------"
su - $dbuser -c "lsnrctl start"
else
echo "---------------------------------------------------------------------------------"
echo "The listener is already running,no need to startup..."
echo "---------------------------------------------------------------------------------"
fi
}
function stop() {
#Only the proccesses of a database need to stop
su - $dbuser -c "lsnrctl stop"
su - $dbuser -c "export ORACLE_SID=$SID_NAME;sqlplus /nolog << EOF
connect / as sysdba
shutdown immediate
quit
EOF"
}
function status() {
chk_lsnr=`netstat -anp 2>/dev/null | grep tnslsnr | grep $lsnr_port | wc -l`
if [ $chk_lsnr -eq 0 ];then
echo "Oracle listener is NOT running!"
exit 1
else
echo "Oracle listener is running OK!"
fi
chk_sid=`ps axw | \
grep $SID_NAME | \
grep -E "\
ora_pmon|\
ora_lgwr|\
ora_dbw[0-9]*|\
ora_ckpt|\
ora_smon|\
ora_reco|\
ora_qmn[0-9]*" |\
grep -v grep | wc -l`
if [ $chk_sid -lt 7 ];then
echo "Oracle SID : $SID_NAME is checked by ERROR!"
exit 1
else
echo "Oracle SID : $SID_NAME is running OK!"
return 0
fi
}
case "$1" in
"start")
echo "Startting Oracle Database : $SID_NAME ..."
start
;;
"stop")
echo "Stopping Oracle Database : $SID_NAME ..."
stop
;;
"status")
status
;;
*)
echo "Usage : `basename $0` {start | stop | status}"
exit 0
;;
esac
2. 改变文件权限
# chmod 755 /etc/init.d/oracle
3. 添加服务
# chkconfig --level 35 oracle on
4. 需要在关机或重启机器之前停止数据库,做一下操作
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle //关机
# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle //重启
5. 使用方法
# service oracle start //启动oracle
# service oracle stop //关闭oracle
# service oracle status //查看oracle状态
6. 测试
===================
FTP开机启动
chkconfig vsftpd on
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30592920/viewspace-2143896/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30592920/viewspace-2143896/