脚本 起动本机数据库存所有的oralce监听
当一台服务器上有很多侦听时,如何用脚本一次起动
#!/bin/bash #+++++++++++++++++++++++++++++++++++++++++++++ # stop and start all oracle database listener in a server # # Param 1 : -stop |start #+++++++++++++++++++++++++++++++++++++++++++++ ############################################# # # Start the tnslistener # ############################################# start_tnslstnr() { oraid=`ls -ltr ${listener}|cut -d " " -f 3` echo $oraid echo $(date) "Start TNSLISTENER name $oralistner for Database $oraid" if ! [ -z $targetlistener ] then su - $oraid -c "lsnrctl start $targetlistener ; wait" >/dev/null 2>&1 0</dev/null; su - $oraid -c "lsnrctl status $targetlistener" 2>&1 0</dev/null; else su - $oraid -c "lsnrctl start $oralistner ; wait" >/dev/null 2>&1 0</dev/null; su - $oraid -c "lsnrctl status $oralistner" 2>&1 0</dev/null; fi RC=$?; if [ $RC -eq 0 ] then echo $(date) "DONE : Start TNSLISTENER $oralistner"; else echo "================================================================="; echo "" echo "" echo $(date) "WARNING: Start TNSLISTENER $oraid RC="$RC; echo "================================================================="; echo "" echo "" echo "" fi } ############################################# # # stop the tnslistener # ############################################# stop_tnslstnr() { echo $(date) "Start TNSLISTENER name $oralistner for Database $oraid" oraid=`ls -ltr ${listener}|cut -d " " -f 3` echo $oraid if ! [ -z $targetlistener ] then su - $oraid -c "lsnrctl stop $targetlistener ; wait" >/dev/null 2>&1 0</dev/null; su - $oraid -c "lsnrctl status $targetlistener" 2>&1 0</dev/null; else su - $oraid -c "lsnrctl stop $oralistner ; wait" >/dev/null 2>&1 0</dev/null; su - $oraid -c "lsnrctl status $oralistner" 2>&1 0</dev/null; fi RC=$?; if [ $RC -eq 0 ] then echo $(date) "DONE : Stop TNSLISTENER $oralistner"; else echo "##################################################################"; echo "" echo "" echo $(date) "WARNING: Stop TNSLISTENER $oraid RC="$RC; echo "##################################################################"; echo "" echo "" echo "" fi } ############################################# # # Start the tnslistener # ############################################# read_listener() { oralistners=$(cat /tmp/tlistener|grep -v "^#" |grep -v "SID_LIST"|grep -v "DESC" |grep -v ")"|grep -v "ADDRESS") oralistners=$(echo $oralistners|tr "=" " ") for oralistner in $oralistners do case $action in -start) start_tnslstnr ;; -stop) stop_tnslstnr ;; esac done if [ $RC -le 1 ] then case $action in -start) echo "all the database listener on this server is started!!!" ;; -stop) echo "all the database listener on this server is stopped!!!" ;; esac fi } ############################################# # # Main # ############################################# if [ $# -lt 1 ] then echo "##########################################################################################" echo echo " Syntax : stop oracle database listener: listener <listener name> <-start|-stop> " 1>&2 echo " Parm1 : optional <listener name> " echo " Parm2 : -start|-stop echo "##########################################################################################" exit 8 fi if [ $# -eq 2 ] then targetlistener=$1 action=$2 else targetlistener="" action=$1 fi echo " Trying to found listener file"; listeners=$(find / -name listener.ora|grep -v sample) for listener in $listeners do if [ -f /tmp/tlistener ] then echo $listener rm -rf /tmp/listener cat $listener > /tmp/tlistener read_listener; else echo $listener cat $listener > /tmp/tlistener read_listener; fi done
每天进步一点点,多思考,多总结
版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。