
从一个本地装有instant client得客户端,在sql脚本目录里选择一个sql,在ip地址池里选择一个ip,查看sql得执行结果,前提是每套库里都有一个固定得监控账户。(tns连接,远端数据库监听要开启)
[oracle@vm1 dbmonitor]$ sh t.sh======================================================================== SINGLE SQL IN SINGLE DATABASE ==== AUTHOR:ZHANGYU ==== demo:selected sql==>selected database==>results ========================================================================SETP1:WE HAVE QUERY SCRIPTS FOLLOWING,PLEASE SELECT ONE SQL YOU WANTED.1) actsess.sql 20) job.sql2) asmdg.sql 21) parameter.sql3) autotask.sql 22) profile.sql4) awrsetting.sql 23) recyclebin.sql5) bchit.sql 24) redofile.sql6) controlfile.sql 25) registry_history.sql7) cursorusage.sql 26) registry.sql8) database.sql 27) rmanjob.sql9) datafile.sql 28) rman.sql10) dblink.sql 29) scndays.sql11) dboption.sql 30) sequence.sql12) dbproperty.sql 31) sessusage.sql13) dbtime.sql 32) tablespace.sql14) directory.sql 33) userdata.sql15) grant.sql 34) user_roles.sql16) info_database_summary.sql 35) usersegsum.sql17) instance.sql 36) users.sql18) invalididx.sql 37) utinsys.sql19) invalidobj.sqlplease select a num from menu:17Selected sql_statement: [ instance.sql ]STEP2:WE HAVE AVALIABLE DATABASES FOLLOWING,PLEASE SELECT ONE DATABASE YOU WANTED.1) 192.168.56.101:1511/ora112) 192.168.56.101:1511/ora11aplease select a num from menu:1Selected Database: [ 192.168.56.101:1511/ora11 ]STEP3:THE RESULTS AS FOLLOWING.DB_NAME CHK_DATE INSTANCE_NAME INSTANCE_NUMBER VERSION PAR HOST_NAME STARTUP_T UPTIME STATUS------------------------- --------- ---------------- --------------- ----------------- --- ---------------------------------------------------------------- --------- ---------- ------------192.168.56.101:1511/ora11 06-NOV-22 ora11 1 11.2.0.4.0 NO vm1 05-NOV-22 .3 OPEN
#############################################################################author: zhangyu#version: V1.0#production godba studio#last modified 2022-10-28#############################################################################!/bin/bashecho "======================================================================"echo "== SINGLE SQL IN SINGLE DATABASE =="echo "== AUTHOR:ZHANGYU =="echo "== demo:selected sql==>selected database==>results =="echo "======================================================================"sleep 1echo#set envirmentsdbc_dir=/home/oracle/dbmonitor/dbssql_dir=/home/oracle/dbmonitor/sqlsres_dir=/home/oracle/dbmonitor/reschk_date=`date +%Y%m%d_%H%m`username=dbsnmppassword=dbsnmpORACLE_HOME=/home/oracle/dbmonitor/instantclient_19_17PATH=/home/oracle/dbmonitor/instantclient_19_17:$PATHLD_LIBRARY_PATH=/home/oracle/dbmonitor/instantclient_19_17PS3="please select a num from menu:"#get username if not configuared#read -r -p "please enter username:" username#get password if not configuared#read -r -s -p "please enter password:" password# check user is oracle or not[ $USER != 'oracle' ] && echo "please run the script with oracle user! " && exit 1# check sqlplus is availablesqlplus -v>/dev/null[ $? -ne 0 ] && echo -e "\033[31mERROR! sqlplus not found.\033[0m" && exit 1# check sqlplus version >12 or notclient_version=`sqlplus -v|awk '{print $3}'|awk -F[.] '{print $1}'`[ $client_version -lt 12 ] && echo -e "\033[31mERROR! sqlplus version must equal to or greater than 12.2.\033[0m" && exit 1#LOAD SECRIPTSecho -e "\033[31mSETP1:WE HAVE QUERY SCRIPTS FOLLOWING,PLEASE SELECT ONE SQL YOU WANTED.\033[0m"echoselect sql_stmt in $( ls $sql_dir )doexport SQL_STMT=$sql_stmtechoprintf "`echo "Selected sql_statement: ["` `echo -e "\033[33;5m${SQL_STMT}\033[0m"` `echo "]"`\n"echobreakdone#LOAD DATABASE CONNECT STRINGSecho -e "\033[31mSTEP2:WE HAVE AVALIABLE DATABASES FOLLOWING,PLEASE SELECT ONE DATABASE YOU WANTED.\033[0m"echoselect db_con in $( cat $dbc_dir/db_cons |awk -F [@] '{print $2}' )doexport DN=$db_conechoprintf "`echo "Selected Database: ["` `echo -e "\033[33;5m${DN}\033[0m"` `echo "]"`\n"echobreakdone#print results of items as selected aboveecho -e "\033[31mSTEP3:THE RESULTS AS FOLLOWING.\033[0m"echosqlplus -S $username/$password@$DN<<EOFSET LINESIZE 300SET PAGESIZE 2000SET VERIFY OFFSET ECHO OFFdefine dn=$DN@$sql_dir/$SQL_STMTexit;EOFexit


文章转载自godba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




