linux shell oracle脚本_领导:如何用shell脚本统计Oracle数据库进程明细和存储过程信息...
生活随笔
收集整理的這篇文章主要介紹了
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輸出:
./settdb.sh 用戶名 用戶密碼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 <輸出:./showpid.sh 數據庫進程ID
這個一般要跟前面的會話腳本配合使用,主要是為了獲得數據庫進程更多明細。
showproc.sh
腳本內容:
一開始是想輸出存儲過程明細的,但是考慮到shell腳本看這些內容畢竟很痛苦,所以改成了去獲得當前數據庫所有存儲過程,特定的存儲過程還是用plsql看吧~
#!/bin/bashecho "=======================================查看數據庫用戶$1的存儲過程信息=========================================="PROC_OWNER=`sqlplus -silent $DB_CONN_STR@$SH_DB_SID <輸出:./showproc.sh rfuser
前段時間頭條bug導致很多代碼都沒顯示,所以后面會整理腳本后一次性發出來,這段時間先寫一下。
后面會分享更多devops和DBA方面內容,感興趣的朋友可以關注下!
總結
以上是生活随笔為你收集整理的linux shell oracle脚本_领导:如何用shell脚本统计Oracle数据库进程明细和存储过程信息...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎样遍历列表中数字_关于Py
- 下一篇: redis 连接池_SpringBoot