婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > oracle自動巡檢腳本生成html報告的方法

oracle自動巡檢腳本生成html報告的方法

熱門標簽:地圖標注坐標圖標 鶴壁電話機器人價格 地圖標注效果的制作 安陽企業電銷機器人供應商 電銷套路機器人 網貸外呼系統合法嗎 手機地圖標注門店 杭州網絡外呼系統運營商 汽車4s店百度地圖標注店

一、 前言

1、由于每月月底都需要對一些oracle數據庫環境進行一些簡單的巡檢,而通過運行一條條語句,并依依去截圖保存到word文檔中效率低下,所以這里我就將手工巡檢過程編寫成shell腳本來提高巡檢效率,同時也免去了截圖照片圖片不清晰的問題。
2、腳本簡單容易二次編輯,本文僅提供簡單巡檢的事項,如數據表空間是否自動擴展、是否開啟歸檔等,大家根據實際需要編輯修改,增加符合自己公司需求的巡檢報告。
3、項目已經上傳到我的github上
項目地址:orawatch.git

二、注意事項與報告部分截圖

一定注意閱讀git上的README.md說明,避免 system 用戶被鎖定。


三、README.md

1、需要使用oracle用戶執行
2、使用說明
1)、多實例下運行此腳本:
聲明實例名;執行時跟上此實例對應的 system 密碼

$ export ORACLE_SID=orcl
$ chmod +x orawatch.sh
$ ./orawatch.sh system/yourpassword

或者是將此實例對應的 system 密碼填寫到腳本中,隨后執行

$ vi orawatch.sh
sqlstr="system/system"
$ chmod +x orawatch.sh
$ ./orawatch.sh

2)、請注意一定要將對應實例名的對應system密碼填寫至腳本如下位置,或是執行時跟上對應實例的system密碼,否則將造成 system 用戶因密碼錯誤而被鎖定

system用戶解鎖語句:

SQL> alter user system account unlock;
alter user system identified by yourpassword;

3、執行完巡檢之后,將在腳本所在的路徑下生成html巡檢結果報告,如下
192.168.35.244os_oracle_summary.html
4、巡檢項信息如下(其他統計項可根據實際需要自行添加)
0)、巡檢ip信息
1)、數據庫版本
2)、是否開啟歸檔,及歸檔磁盤占用率與路徑信息
3)、數據庫memory/sga/pga信息
4)、數據表空間是否自動擴展
5)、數據庫當前分配的數據表空間使用率信息

四、腳本內容

#!/bin/bash
# script_name: orawatch.sh
# Author: Danrtsey.Shun
# Email:mydefiniteaim@126.com
# usage:
# chmod +x orawatch.sh
# export ORACLE_SID=orcl
# ./orawatch.sh system/yourpassword
ipaddress=`ip a|grep "global"|awk '{print $2}' |awk -F/ '{print $1}'`
file_output=${ipaddress}'os_oracle_summary.html'
td_str=''
th_str=''
sqlstr=$1
test $1
if [ $? = 1 ]; then
 echo
 echo "Info...You did not enter a value for sqlstr."
 echo "Info...Using default value = system/system"
 sqlstr="system/system"
fi
export NLS_LANG='american_america.AL32UTF8'
#yum -y install bc sysstat net-tools
create_html_css(){
 echo -e "html>
head>
style type="text/css">
 body  {font:12px Courier New,Helvetica,sansserif; color:black; background:White;}
 table,tr,td {font:12px Courier New,Helvetica,sansserif; color:Black; background:#FFFFCC; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;} 
 th   {font:bold 12px Courier New,Helvetica,sansserif; color:White; background:#0033FF; padding:0px 0px 0px 0px;} 
 h1   {font:bold 12pt Courier New,Helvetica,sansserif; color:Black; padding:0px 0px 0px 0px;} 
/style>
/head>
body>"
}
create_html_head(){
echo -e "h1>$1/h1>"
}
create_table_head1(){
 echo -e "table width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse">"
}
create_table_head2(){
 echo -e "table width="100%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse">"
}
create_td(){
 td_str=`echo $1 | awk 'BEGIN{FS="|"}''{i=1; while(i=NF) {print "td>"$i"/td>";i++}}'`
}
create_th(){
 th_str=`echo $1|awk 'BEGIN{FS="|"}''{i=1; while(i=NF) {print "th>"$i"/th>";i++}}'`
}
create_tr1(){
 create_td "$1"
 echo -e "tr>
 $td_str
 /tr>" >> $file_output
}
create_tr2(){
 create_th "$1"
 echo -e "tr>
 $th_str
 /tr>" >> $file_output
}
create_tr3(){
 echo -e "tr>td>
 pre style=\"font-family:Courier New; word-wrap: break-word; white-space: pre-wrap; white-space: -moz-pre-wrap\" >
 `cat $1`
 /pre>/td>/tr>" >> $file_output
}
create_table_end(){
 echo -e "/table>"
}
create_html_end(){
 echo -e "/body>/html>"
}
NAME_VAL_LEN=12
name_val () {
 printf "%+*s | %s\n" "${NAME_VAL_LEN}" "$1" "$2"
}
get_netinfo(){
 echo "interface | status | ipadds  |  mtu | Speed  |  Duplex" >>/tmp/tmpnet_h1_`date +%y%m%d`.txt
 for ipstr in `ifconfig -a|grep ": flags"|awk '{print $1}'|sed 's/.$//'`
 do
  ipadds=`ifconfig ${ipstr}|grep -w inet|awk '{print $2}'`
  mtu=`ifconfig ${ipstr}|grep mtu|awk '{print $NF}'`
  speed=`ethtool ${ipstr}|grep Speed|awk -F: '{print $2}'`
  duplex=`ethtool ${ipstr}|grep Duplex|awk -F: '{print $2}'`
  echo "${ipstr}" "up" "${ipadds}" "${mtu}" "${speed}" "${duplex}"\

  |awk '{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6}' >>/tmp/tmpnet1_`date +%y%m%d`.txt
 done
}
ora_base_info(){
 echo "######################## 1.數據庫版本"
 echo "select ' ' as \"--1.Database Version\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_base_`date +%y%m%d`.txt
 echo "Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_base_`date +%y%m%d`.txt
}
ora_archive_info(){
 echo "######################## 2.歸檔狀態"
 echo "select ' ' as \"--2.DB Archive Mode\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_archive_`date +%y%m%d`.txt
 echo "select archiver from v\$instance;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_archive_`date +%y%m%d`.txt
 sed -i '33!d' /tmp/tmpora_archive_`date +%y%m%d`.txt
 archive_string=`cat /tmp/tmpora_archive_\`date +%y%m%d\`.txt`
 if [ $archive_string = STARTED ];then
 echo "set linesize 333;
	col FILE_TYPE for a13;
 select FILE_TYPE,PERCENT_SPACE_USED as \"占用率(%)\",PERCENT_SPACE_RECLAIMABLE,NUMBER_OF_FILES,CON_ID from v\$flash_recovery_area_usage where FILE_TYPE = 'ARCHIVED LOG';
 show parameter log_archive;
	col NAME for a40;
	col 已使用空間 for a13;
	select NAME,SPACE_LIMIT/1024/1024 as \"最大空間(M)\",SPACE_USED/1024/1024 as \"已使用空間(M)\",SPACE_RECLAIMABLE,NUMBER_OF_FILES,CON_ID from v\$recovery_file_dest;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_archive_`date +%y%m%d`.txt
	for i in `seq 2`; do sed -i '$d' /tmp/tmpora_archive_`date +%y%m%d`.txt ; done
 fi
}
ora_mem_info(){
 echo "######################## 3.1 內存參數memory"
 echo "select ' ' as \"--3.1.DB memory\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_mem_`date +%y%m%d`.txt
 echo "set line 2500;
 show parameter memory;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_mem_`date +%y%m%d`.txt
}
ora_sga_info(){
 echo "######################## 3.2 內存參數sga"
 echo "select ' ' as \"--3.2.DB sga\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_sga_`date +%y%m%d`.txt
 echo "set line 2500;
 show parameter sga;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_sga_`date +%y%m%d`.txt
}
ora_pga_info(){
 echo "######################## 3.3 內存參數pga"
 echo "select ' ' as \"--3.3.DB pga\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_pga_`date +%y%m%d`.txt
 echo "set line 2500;
 show parameter pga;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_pga_`date +%y%m%d`.txt
}
ora_dbfile_info(){
 echo "######################## 4.表空間是否自動擴展"
 echo "select ' ' as \"--4.DB dbfile\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_dbfile_`date +%y%m%d`.txt
 echo "set lines 2500;
 col TABLESPACE_NAME for a15;
 col FILE_NAME for a60;
 select FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE, maxbytes/1024/1024 as max_m,increment_by/1024/1024 as incre_m from dba_data_files;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_dbfile_`date +%y%m%d`.txt
}
ora_dbfile_useage_info(){
 echo "######################## 5.表空間使用率"
 echo "select ' ' as \"--5.DB dbfile useage\" from dual;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt
 echo "set line 2500;
 col 表空間名 for a14;
 SELECT UPPER(F.TABLESPACE_NAME) \"表空間名\",D.TOT_GROOTTE_MB \"表空間大小(G)\",D.TOT_GROOTTE_MB - F.TOTAL_BYTES \"已使用空間(G)\",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' \"使用比\",F.TOTAL_BYTES \"空閑空間(G)\",F.MAX_BYTES \"最大塊(G)\" FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024*1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024*1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE where tablespace_name> 'USERS' GROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024*1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD where dd.tablespace_name> 'USERS' GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1;" >ora_sql.sql
 sqlplus $sqlstr ora_sql.sql>>/tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt
}


create_html(){
 rm -rf $file_output
 touch $file_output
 create_html_css >> $file_output

 create_html_head "0 Network Info Summary" >> $file_output
 create_table_head1 >> $file_output
 get_netinfo
 while read line
 do
 create_tr2 "$line" 
 done  /tmp/tmpnet_h1_`date +%y%m%d`.txt
 while read line
 do
 create_tr1 "$line" 
 done  /tmp/tmpnet1_`date +%y%m%d`.txt
 create_table_end >> $file_output

 create_html_head "1 Version of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_base_info
 sed -i '27,33!d' /tmp/tmpora_base_`date +%y%m%d`.txt
 sed -i '2,3d' /tmp/tmpora_base_`date +%y%m%d`.txt
 create_tr3 "/tmp/tmpora_base_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "2 Status of archive_log" >> $file_output
 create_table_head1 >> $file_output
 ora_archive_info
 sed -i '2,11d' /tmp/tmpora_archive_`date +%y%m%d`.txt
 create_tr3 "/tmp/tmpora_archive_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "3.1 memory Config of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_mem_info
 sed -i '1,30d' /tmp/tmpora_mem_`date +%y%m%d`.txt
 for i in `seq 2`; do sed -i '$d' /tmp/tmpora_mem_`date +%y%m%d`.txt ; done
 create_tr3 "/tmp/tmpora_mem_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "3.2 sga Config of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_sga_info
 sed -i '1,30d' /tmp/tmpora_sga_`date +%y%m%d`.txt
 for i in `seq 2`; do sed -i '$d' /tmp/tmpora_sga_`date +%y%m%d`.txt ; done
 create_tr3 "/tmp/tmpora_sga_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "3.3 pga Config of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_pga_info
 sed -i '1,30d' /tmp/tmpora_pga_`date +%y%m%d`.txt
 for i in `seq 2`; do sed -i '$d' /tmp/tmpora_pga_`date +%y%m%d`.txt ; done
 create_tr3 "/tmp/tmpora_pga_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "4 dbfile autoextensible of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_dbfile_info
 sed -i '1,30d' /tmp/tmpora_dbfile_`date +%y%m%d`.txt
 for i in `seq 2`; do sed -i '$d' /tmp/tmpora_dbfile_`date +%y%m%d`.txt ; done
 create_tr3 "/tmp/tmpora_dbfile_`date +%y%m%d`.txt"
 create_table_end >> $file_output

 create_html_head "5 dbfile usage of Database" >> $file_output
 create_table_head1 >> $file_output
 ora_dbfile_useage_info
 sed -i '1,30d' /tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt
 for i in `seq 2`; do sed -i '$d' /tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt ; done
 create_tr3 "/tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt"
 create_table_end >> $file_output
 
 create_html_end >> $file_output
 sed -i 's/BORDER=1/width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse"/g' $file_output
 rm -rf /tmp/tmp*_`date +%y%m%d`.txt
 rm -rf ora_sql.sql
}
PLATFORM=`uname`
if [ ${PLATFORM} = "HP-UX" ] ; then
 echo "This script does not support HP-UX platform for the time being"
exit 1
elif [ ${PLATFORM} = "SunOS" ] ; then
 echo "This script does not support SunOS platform for the time being"
exit 1
elif [ ${PLATFORM} = "AIX" ] ; then
 echo "This script does not support AIX platform for the time being"
exit 1
elif [ ${PLATFORM} = "Linux" ] ; then
 create_html
fi

到此這篇關于oracle自動巡檢腳本生成html報告的文章就介紹到這了,更多相關oracle自動巡檢腳本內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Oracle數據庫自動備份腳本分享(超實用)
  • Linux中Oracle服務啟動和停止腳本與開機自啟動
  • Oracle自動備份腳本
  • Oracle數據庫執行腳本常用命令小結
  • Linux下通過腳本自動備份Oracle數據庫并刪除指定天數前的備份

標簽:柳州 焦作 梧州 泰安 酒泉 南陽 河源 銀川

巨人網絡通訊聲明:本文標題《oracle自動巡檢腳本生成html報告的方法》,本文關鍵詞  oracle,自動,巡檢,腳本,生成,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle自動巡檢腳本生成html報告的方法》相關的同類信息!
  • 本頁收集關于oracle自動巡檢腳本生成html報告的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲美女屁股眼交| 欧美欧美欧美欧美首页| 免费成人在线观看视频| 天天影视色香欲综合网老头| 亚洲成人先锋电影| 五月天国产精品| 蜜臀av一区二区| 黄网站免费久久| 国产成人在线看| 成人一区二区视频| 99久久久国产精品| 色婷婷精品大在线视频| 在线观看亚洲专区| 3atv一区二区三区| 久久免费电影网| 国产精品久久久久久久蜜臀| 亚洲婷婷国产精品电影人久久| 国产精品国产三级国产普通话蜜臀| 日本一区二区高清| 亚洲精品成a人| 免费不卡在线观看| 成人爽a毛片一区二区免费| 99riav久久精品riav| 欧美另类变人与禽xxxxx| 欧美v国产在线一区二区三区| 久久九九国产精品| 亚洲国产日韩a在线播放| 久久99久久99| 91在线免费视频观看| 欧美一区二区免费视频| 中文字幕 久热精品 视频在线| 一区二区久久久久| 国产精品88av| 91麻豆精品国产91久久久使用方法| 26uuu亚洲综合色| 一区二区三区毛片| 韩国av一区二区三区在线观看| 91色porny在线视频| 精品国产露脸精彩对白| 亚洲五月六月丁香激情| 成人一区二区视频| 欧美一区二区三区不卡| 一区二区日韩电影| 成人精品高清在线| 日韩视频一区二区在线观看| 最新国产成人在线观看| 狠狠色2019综合网| 欧美日韩国产精品成人| 国产精品高潮久久久久无| 蜜臀久久久久久久| 在线国产亚洲欧美| 亚洲三级在线看| 福利电影一区二区| 久久新电视剧免费观看| 蜜桃一区二区三区在线| 欧美精品粉嫩高潮一区二区| 亚洲特黄一级片| 大胆亚洲人体视频| 久久精品视频网| 极品少妇xxxx精品少妇| 日韩欧美国产综合| 日韩不卡一区二区三区| 欧美日韩国产色站一区二区三区| 亚洲少妇30p| 波多野结衣欧美| 欧美国产精品专区| 成人一区二区三区在线观看 | 在线一区二区视频| 亚洲天堂久久久久久久| 99re视频这里只有精品| 亚洲欧洲日韩一区二区三区| 不卡av免费在线观看| 亚洲国产精品二十页| 国产69精品久久久久毛片| 国产欧美一区二区精品性色超碰| 国产一区在线视频| 国产亚洲欧洲997久久综合| 国产乱国产乱300精品| 国产亚洲短视频| 成人av在线资源| 亚洲欧美色图小说| 欧美午夜电影一区| 日本不卡高清视频| 337p粉嫩大胆色噜噜噜噜亚洲| 国产一区免费电影| 中文字幕一区二区日韩精品绯色| 91免费视频大全| 日韩国产在线观看| 久久亚洲精华国产精华液| jlzzjlzz欧美大全| 视频一区视频二区在线观看| 欧美www视频| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲色图在线播放| 欧美日韩中文另类| 久久99精品国产麻豆婷婷| 国产日产亚洲精品系列| 91黄色在线观看| 美腿丝袜亚洲一区| 一色屋精品亚洲香蕉网站| 在线一区二区观看| 久久国产精品第一页| 自拍偷自拍亚洲精品播放| 欧美日韩国产综合一区二区| 国产精品亚洲第一区在线暖暖韩国| 日韩理论片一区二区| 欧美一区二区三区在线观看视频| 国产盗摄视频一区二区三区| 亚洲成人一区在线| 欧美国产日产图区| 欧美大肚乱孕交hd孕妇| 99在线精品一区二区三区| 免费av网站大全久久| 国产精品国产a级| 欧美白人最猛性xxxxx69交| 在线欧美小视频| 丁香六月久久综合狠狠色| 日韩影院免费视频| 亚洲精品伦理在线| 国产三级三级三级精品8ⅰ区| 欧美日韩高清影院| 99视频一区二区| 国产一区二区在线电影| 亚洲国产成人porn| 中文字幕一区二区三区不卡在线| 欧美大片在线观看| 欧美日韩色综合| 色婷婷综合视频在线观看| 国产一区视频在线看| 丝袜a∨在线一区二区三区不卡| 亚洲天堂福利av| 中文字幕免费观看一区| 日韩欧美一级片| 欧美蜜桃一区二区三区| 一本久久a久久免费精品不卡| 国产真实乱子伦精品视频| 亚洲丰满少妇videoshd| 一区二区高清视频在线观看| 国产精品久久一卡二卡| 久久久亚洲综合| 国产日韩欧美不卡在线| 欧美精品一区二区三区一线天视频| 欧美日韩不卡在线| 4438x成人网最大色成网站| 欧美伊人精品成人久久综合97| 91首页免费视频| 99视频有精品| 欧美亚洲日本国产| 欧美日韩在线综合| 欧美视频一区二区三区在线观看| 一本一本大道香蕉久在线精品 | 不卡的av网站| 成人午夜免费视频| 99在线精品一区二区三区| 色综合天天综合在线视频| 欧美综合一区二区三区| 欧美日韩1区2区| 欧美一区二区三区在线电影 | 色琪琪一区二区三区亚洲区| 色综合天天综合色综合av| 91麻豆蜜桃一区二区三区| 91猫先生在线| 91精品国产综合久久精品麻豆| 91麻豆精品国产综合久久久久久| 欧美一级片免费看| 久久免费偷拍视频| 亚洲免费视频中文字幕| 亚洲成人免费电影| 九九九精品视频| 成人国产一区二区三区精品| 91在线观看视频| 欧美日韩国产乱码电影| 精品国产一区二区三区久久影院 | 日本韩国欧美一区| 69堂精品视频| 国产精品免费网站在线观看| 亚洲综合成人在线视频| 久久精品国产亚洲a| 91在线小视频| 精品乱人伦一区二区三区| 亚洲激情网站免费观看| 激情久久五月天| 在线视频国内一区二区| 久久五月婷婷丁香社区| 亚洲电影在线播放| 成人在线视频一区| 在线综合+亚洲+欧美中文字幕| 国产三级欧美三级| 午夜av电影一区| 成人丝袜高跟foot| 日韩欧美高清一区| 亚洲综合999| 国产不卡视频一区| 欧美美女视频在线观看| 亚洲日本va在线观看| 国产一区视频网站| 在线成人午夜影院| 最新高清无码专区| 国产夫妻精品视频| 精品久久久久久久一区二区蜜臀|