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 <<EOF 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 <<EOF 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}