Shell实现的Oracle启动脚本分享

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/

Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart )

复制代码

代码如下:

#!/bin/sh 

cmdname=”restart” 

# get oracle sid information from env by default.

oracleSID=${ORACLE_SID} 

env_oracleSID=${ORACLE_SID} 

function echohelp(){

  echo “******oracled Tool Helper******” 

  echo “Usage:sh oracled [start|stop|restart] SIDs” 

echo “SIDs : seperated by comma”

  exit 5 

function startoracle(){ 

  echo “begin to start oracle …” 

  lsnrctl start 

for curSID in `echo ${oracleSID} | awk BEGIN {RS=”,”}{ORS=”n”}{print $1}` ; do

if [ “x${curSID}” = “x” ] ; then

      continue; 

    fi 

    export ORACLE_SID=${curSID} 

sqlplus /nolog <

connect /as sysdba 

startup 

exit 

exit 

EOF 

echo “oracle DB [${curSID}] started OK.”

  done 

function stoporacle(){ 

  echo “begin to stop oracle …” 

for curSID in `echo ${oracleSID} | awk BEGIN {RS=”,”}{ORS=”n”}{print $1}` ; do

if [ “x${curSID}” = “x” ] ; then

      continue; 

    fi 

    export ORACLE_SID=${curSID} 

sqlplus /nolog <

connect /as sysdba 

shutdown immediate 

exit

exit 

EOF 

    echo “oracle DB [${curSID}] stopped OK.” 

  done 

  lsnrctl stop 

function restartoracle(){ 

stoporacle

  startoracle 

if [ $# -lt 1 ] ; then 

  echohelp 

fi 

until [ $# -eq 0 ] 

do 

  tmpVOrg=$1 

tmpV=`echo “${tmpVOrg}” | awk {printf “%s”,$1} | tr [A-Z] [a-z]`

if [ $tmpV = “start” -o $tmpV = “restart” -o $tmpV = “stop” ] ; then

    cmdname=${tmpV} 

  elif [ $tmpV = “–help” -o $tmpV = “-h” ] ; then 

    echohelp 

  else 

    oracleSID=$tmpVOrg 

fi

  shift 

done 

if [ “x${cmdname}” = “x” ] ; then 

  echohelp 

fi 

${cmdname}oracle 

export ORACLE_SID=${env_oracleSID}

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容