linux shell oracle脚本_领导:如何用shell脚本统计Oracle数据库进程明细和存储过程信息...

概述

今天主要分享一下两个shell脚本,主要是为了查看数据库进程的相关信息和存储过程信息,下面一起来看看吧~


数据库连接脚本

use script settdb.sh for DB login details registry

#!/bin/bashtmp_username=$SH_USERNAMEtmp_password=$SH_PASSWORDtmp_db_sid=$SH_DB_SID#check $1 and $2 should be mandatory from inputif [[ -z $1 ]] || [[ -z $2 ]]; thenecho '***********************************************'echo 'WARNING :UserName And PassWord Is Needed!'echo '***********************************************'exitfiif [[ -z $3 ]] && [[ -z $ORACLE_SID ]];thenecho '***********************************************'echo 'WARNING :There is Instance can be used !'echo '***********************************************'exitfiSH_USERNAME=`echo "$1"|tr '[a-z]' '[A-Z]'`SH_PASSWORD=$2echo '***********************************************'if [[ -z $3 ]]then SH_DB_SID=$ORACLE_SID echo 'Using Default Instance :'$ORACLE_SID echo .else SH_DB_SID=`echo "$3"|tr '[a-z]' '[A-Z]'`fiif [[ $SH_DB_SID = $tmp_db_sid ]] && [[ $SH_USERNAME = $tmp_username ]] && [[ $SH_PASSWORD = $tmp_password ]];then echo 'Instance '$SH_DB_SID 'has been connected' echo '***********************************************' exitfiexport SH_USERNAME=$SH_USERNAMEexport SH_DB_SID=$SH_DB_SIDexport SH_PASSWORD=$SH_PASSWORDexport DB_CONN_STR=$SH_USERNAME/$SH_PASSWORD#echo $DB_CONN_STRlistfile=`pwd`/listdbNum=`echo show user | $ORACLE_HOME/bin/sqlplus -s $DB_CONN_STR@$SH_DB_SID| grep -i 'USER ' | wc -l`if [ $Num -gt 0 ] then ## ok - instance is up echo 'Instance '$SH_DB_SID 'has been connected' echo -e '--' `date`'-- --'$SH_USERNAME@$SH_DB_SID 'has been connected --' >> listdb echo '***********************************************' echo 'Initalize DB login details registry OK!' echo 'Now you can Execution script~' echo '***********************************************' $SHELL  else ## inst is inaccessible  echo Instance: $SH_DB_SID Is Invalid Or UserName/PassWord Is Wrong  echo '***********************************************' exit fidel_length=3tmp_txt=$(sed -n '$=' listdb) echo '***********************************************'echo '********* ' $SH_USERNAME'@'$SH_DB_SID '**********'echo '***********************************************'curr_len=`cat $listfile|wc -l`if [ $curr_len -gt $del_length ]; thenecho ' There Are Below Sessions Still Alive 'echo '***********************************************'fised $((${tmp_txt}-${del_length}+1)),${tmp_txt}d $listfile | tee tmp_listfilemv tmp_listfile $listfile
03c22545631b099a57cf361468adbf93.png

输出:

./settdb.sh 用户名 用户密码
3907c4303f52a94fe01165e0f8cf3c78.png

showpid.sh

脚本内容:

#!/bin/bashecho "=================================================查看数据库进程spid:$1的相关信息====================================================="if [ -z "$1" ]; then  echo "no process has provided!"  exit 0fish_tmp_process=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <
cabd3c9ca91fb03adf23cec716bb5b34.png

输出:./showpid.sh 数据库进程ID


这个一般要跟前面的会话脚本配合使用,主要是为了获得数据库进程更多明细。

900654ee673ca7ae5150f2f67b97245a.png

showproc.sh

脚本内容:

一开始是想输出存储过程明细的,但是考虑到shell脚本看这些内容毕竟很痛苦,所以改成了去获得当前数据库所有存储过程,特定的存储过程还是用plsql看吧~

#!/bin/bashecho "=======================================查看数据库用户$1的存储过程信息=========================================="PROC_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <
797c93b4c459739acacda5b760e0235f.png

输出:./showproc.sh rfuser

72c6bdcfb963072f04f11ffcbb201dc7.png

前段时间头条bug导致很多代码都没显示,所以后面会整理脚本后一次性发出来,这段时间先写一下。

后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

72bdb6d230c54d9c4a58ac759987b1c9.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值