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}