# # Script de Start/Stop/Consultas a Listener's/Bancos Oracle # #---------------------------------------------------------------------------- # Tabela de bancos. Cada banco ocupa uma entrada na tabela "Tb_desc", com sua # descricao e a mesma entrada na tabela "Tb_inst", com o nome da instence. #------------------------------------------------------------------------- # Tb_desc[1]="Bandeirante Desenvolvimento" Tb_desc[2]="Piratininga Desenvolvimento" # Tb_inst[1]=elagd2 Tb_inst[2]=elagd1 # Tb_max=${#Tb_inst[@]} # # #----------------------- Cabecalho --------------------------- # Cabecalho() { time=`date +"%H:%M:%S` clear echo " =============================================================" echo " " $HOST " MONITORAMENTO DE BANCO DE DADOS " $time echo " =============================================================" echo } # #----------------------- Menu Principal ----------------------- # Principal() { Cabecalho echo " 1 - Listener" echo echo " 2 - Bancos" echo echo " 9 - Fim" echo echo " =============================================================" echo " Selecione:" '\c' # read resposta case $resposta in 1) Menu_Listener ; Principal ;; 2) Menu_Banco ; Principal ;; 9) exit ;; *) echo ; echo "Opcao invalida. Tecle Enter." '\c' ; read pausa ; Principal ;; esac } # #-------------------------------- Menu_Listener ----------------------------- # Menu_Listener() { Cabecalho echo " 0 - Retorna ao Menu Principal" echo echo " 1 - Start Listener" echo echo " 2 - Stop Listener" echo echo " 3 - Consulta Listener" echo echo " 9 - Fim" echo echo " =============================================================" echo " Selecione:" '\c' # read resposta case $resposta in 0) Principal ;; 1) Start_Listener ; Menu_Listener ;; 2) Stop_Listener ; Menu_Listener ;; 3) Consulta_Listener ; Menu_Listener ;; 9) exit ;; *) echo ; echo "Opcao invalida. Tecle Enter." '\c' ; read pausa ; Menu_Listener ;; esac } # #--------------------- Start Listener --------------------- # Start_Listener() { Cabecalho echo " 1 - Start Listener" echo Verifica_Listener retorno=$? # se 1, ja esta ativo if [ $retorno -eq 1 ] then echo " *** Listener ja esta ativo ***" echo echo " =============================================================" else lsnrstart.sh fi echo echo echo "Tecle Enter." '\c' read pausa } # #--------------------- Stop Listener --------------------- # Stop_Listener() { Cabecalho echo " 2 - Stop Listener" echo Verifica_Listener retorno=$? # se 0, nao esta ativo if [ $retorno -eq 0 ] then echo " *** Listener nao esta ativo ***" echo echo " =============================================================" else lsnrstop.sh fi echo echo echo "Tecle Enter." '\c' read pausa } # # #--------------------- Consulta Listener --------------------- # Consulta_Listener() { Cabecalho echo " 3 - Consulta Listener" echo echo " Listener" echo " --------------------------------------------" list=" " for VAR1 in `ps -f -uoracle | grep tnslsnr` do if [ "$VAR1" != - ] then VAR2=`expr substr $VAR1 1 1` if [ "$VAR2" = / ] then list="OK" echo " $VAR1" fi fi done if [ "$list" != OK ] then echo " *** Listener nao esta ativo ***" fi echo " --------------------------------------------" echo echo " =============================================================" echo "Tecle Enter." '\c' read pausa } # #---------------- Verifica se Listener esta ativo ------------------- # # Retorna 0 se listener nao ativo ou 1, se ativo # Verifica_Listener() { retorno=0 for VAR1 in `ps -f -uoracle | grep tnslsnr` do if [ "$VAR1" != - ] then VAR2=`expr substr $VAR1 1 1` if [ "$VAR2" = / ] then retorno=1 fi fi done return $retorno } # #------------------------------ Menu_Banco -------------------------- # Menu_Banco() { Cabecalho echo " 0 - Retorna ao Menu Principal" echo echo " 1 - Start Banco" echo echo " 2 - Stop Banco" echo echo " 3 - Consulta Bancos Ativos" echo echo " 9 - Fim" echo echo " =============================================================" echo " Selecione:" '\c' # read resposta case $resposta in 0) Principal ;; 1) Start_Banco ; Menu_Banco ;; 2) Stop_Banco ; Menu_Banco ;; 3) Consulta_Bancos_Ativos ; Menu_Banco ;; 9) exit ;; *) echo ; echo "Opcao invalida. Tecle Enter." '\c' ; read pausa ; Menu_Banco ;; esac } # #----------------------- Start de Bancos ----------------------- # Start_Banco() { Cabecalho echo " 1 - Start Banco" echo echo " Opcao Acao" echo " ----- ----------------------------------------" echo " 0 Retorna ao Menu Anterior" Display_Bancos echo " 9 Fim" echo " ----- -----------------------------------------" echo " Opcao:" '\c' #---------------------------------------------------------------- read RESP if test $RESP -eq 0 then Menu_Banco elif test $RESP -eq 9 then exit elif [ $RESP -lt 1 -o $RESP -gt Tb_max ] then echo echo " Opcao invalida. Tecle Enter." '\c' read pausa Start_Banco else Monta_Bancos_Ativos ${Tb_inst[RESP]} retorno=$? # se 0, nao esta ativo if [ $retorno -eq 0 ] then orastart.sh ${Tb_inst[RESP]} else echo " *** Banco ja esta ativo ***" fi fi echo echo "Tecle Enter." read pausa Start_Banco } # #----------------------- Stop de Bancos ----------------------- # Stop_Banco() { Cabecalho echo " 2 - Stop Banco" echo echo " Opcao Acao" echo " ----- ----------------------------------------" echo " 0 Retorna ao Menu Anterior" Display_Bancos echo " 9 Fim" echo " ----- ----------------------------------------" echo " Opcao:" '\c' read RESP if test $RESP -eq 0 then Menu_Banco elif test $RESP -eq 9 then exit elif [ $RESP -lt 1 -o $RESP -gt Tb_max ] then echo echo " Opcao invalida. Tecle Enter." '\c' read pausa Start_Banco else Monta_Bancos_Ativos ${Tb_inst[RESP]} retorno=$? # se 0, nao esta ativo if [ $retorno -eq 0 ] then echo " *** Banco nao esta ativo ***" else orastop.sh ${Tb_inst[RESP]} fi fi echo echo "Tecle Enter." read pausa Stop_Banco } # #----------------------- Consulta Bancos Ativos ----------------------- # Consulta_Bancos_Ativos() { Cabecalho echo " 3 - Consulta Bancos Ativos" echo Monta_Bancos_Ativos if [ $Qt_bancos_ativos = 0 ] then echo " *** Nenhum banco ativo ***" else for i in "${Tb_bancos_ativos[@]}" do ind=0 for j in "${Tb_inst[@]}" do ind=`expr $ind + 1` if test "$j" = "$i" then echo " " "${Tb_desc[ind]}" "-" $i fi done done fi echo echo " =============================================================" echo "Tecle Enter." '\c' read pausa } #--------- Rotina auxiliar para display dos bancos do ambiente ------------ Display_Bancos() { ind=1 while [ $ind -le $Tb_max ] do echo " " $ind " " ${Tb_desc[ind]} "-" ${Tb_inst[ind]} ind=`expr $ind + 1` done } #---------- Rotina auxiliar para montagem dos bancos ativos ---------------- # # Se for passado o nome de uma instance (argumento 1): # - retorna o pointer na tabela de bancos ativos, se entre os ativos estiver # o nome passado ou # - retorna 0 se nao estiver. # Monta_Bancos_Ativos() { retorno=0 set -A Tb_bancos_ativos " " Qt_bancos_ativos=0 for VAR1 in `ps -f -uoracle | grep smon_` do if [ "$VAR1" != - ] then VAR2=`expr substr $VAR1 1 9` if [ "$VAR2" = ora_smon_ ] then VAR2=`expr substr $VAR1 10 10` Qt_bancos_ativos=`expr $Qt_bancos_ativos + 1` Tb_bancos_ativos[$Qt_bancos_ativos]=$VAR2 if [ $# -gt 0 ] then if [ $VAR2 = $1 ] then retorno=$Qt_bancos_ativos fi fi fi fi done return $retorno } # #----------------------------------- # Inicio - (Menu Principal) #----------------------------------- Principal #