Shell实现的Oracle启动脚本分享
Usage:shoracled[start|stop|restart]SIDs其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是restart,也可以指定需要进行的操作(start|stop|restart)
#!/bin/sh
cmdname="restart"
#getoraclesidinformationfromenvbydefault.
oracleSID=${ORACLE_SID}
env_oracleSID=${ORACLE_SID}
functionechohelp(){
echo"******oracledToolHelper******"
echo"Usage:shoracled[start|stop|restart]SIDs"
echo"SIDs:seperatedbycomma"
exit5
}
functionstartoracle(){
echo"begintostartoracle..."
lsnrctlstart
forcurSIDin`echo${oracleSID}|awk'BEGIN{RS=","}{ORS="\n"}{print$1}'`;do
if["x${curSID}"="x"];then
continue;
fi
exportORACLE_SID=${curSID}
sqlplus/nolog<<EOF
connect/assysdba
startup
exit
exit
EOF
echo"oracleDB[${curSID}]startedOK."
done
}
functionstoporacle(){
echo"begintostoporacle..."
forcurSIDin`echo${oracleSID}|awk'BEGIN{RS=","}{ORS="\n"}{print$1}'`;do
if["x${curSID}"="x"];then
continue;
fi
exportORACLE_SID=${curSID}
sqlplus/nolog<<EOF
connect/assysdba
shutdownimmediate
exit
exit
EOF
echo"oracleDB[${curSID}]stoppedOK."
done
lsnrctlstop
}
functionrestartoracle(){
stoporacle
startoracle
}
if[$#-lt1];then
echohelp
fi
until[$#-eq0]
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
exportORACLE_SID=${env_oracleSID}