ITPub博客

首页 > 数据库 > Oracle > 日常巡检快捷脚本

日常巡检快捷脚本

原创 Oracle 作者:carlocc 时间:2016-03-19 13:55:06 0 删除 编辑
     在客户这每天必做的是巡检,库多、网段隔离、关注点不同、登录时间受限,反正每天巡检时比较痛苦的,其实内容很简单,关于快捷巡检脚本,早就想弄,最近抽空针对不同系统的情况和要求写了不同的shell脚本放在主机tmp目录下,这样每天以root运行一下所有结果一目了然,减轻不少痛苦。
     下面是其中一个suse linux rac节点1的巡检脚本,里面的模块可根据需要进行增减。
    由于网段隔离得厉害,客户也不喜欢主机放太多东西,暂时没考虑用一台主机统一搜集巡检数据,后面再看情况吧。

点击(此处)折叠或打开

  1. #!/usr/bin/sh
  2. source /oracle/db/.profile
  3. echo ***************************************************************************************file_system//////////////
  4. df -h|awk '{print $5,$6}'
  5. echo ***************************************************************************************cpu_idle//////////////
  6. vmstat 1 3|awk '{print $15}'
  7. echo ***************************************************************************************alert_log//////////////
  8. echo "<<`tail -3000 /oracle/base/diag/rdbms/orcl/orcl*/trace/alert_orcl*.log|grep ORA-|wc -l`>> ORA- arise in the alertlog"
  9. tail -3000 /oracle/base/diag/rdbms/orcl/orcl*/trace/alert_orcl*.log|grep ORA-
  10. echo ***************************************************************************************tablespace used//////////////
  11. su - oracle <<!
  12. cd /tmp
  13. sqlplus -s '/as sysdba' >tablespace_use.log <<EOF
  14. set feedback off echo off verify off heading off pages 1000
  15. select * from dba_tablespace_usage_metrics order by USED_PERCENT;
  16. exit
  17. EOF
  18. tail -5 tablespace_use.log
  19. rm tablespace_use.log
  20. exit
  21. !
  22. echo ***************************************************************************************User IO(ms)//////////////
  23. su - oracle <<!
  24. cd /tmp
  25. sqlplus -s '/as sysdba' >dailycheck_awr.txt <<EOF
  26. set feedback off echo off verify off heading off pages 1000 lines 150 serveroutput on
  27. declare
  28.  vminsnap number;
  29.  vmaxsnap number;
  30.  vbegindate date;
  31.  vendate    date;
  32.  vdbid    number;
  33.  vinst    number;
  34. begin
  35.    vbegindate:=trunc(sysdate)+8.5/24;
  36.    vendate:=trunc(sysdate)+11.5/24;
  37.    vinst:=1;
  38.    select dbid,min(SNAP_ID),max(SNAP_ID) into vdbid,vminsnap,vmaxsnap from DBA_HIST_SNAPSHOT where END_INTERVAL_TIME between vbegindate and vendate group by dbid;
  39.    dbms_output.enable(500000);
  40.    for i in (select output from table(dbms_workload_repository.awr_report_text(l_dbid=>vdbid,l_inst_num=>vinst,l_bid=>vminsnap,l_eid=>vmaxsnap)))
  41.    loop
  42.      dbms_output.put_line(i.output);
  43.    end loop;
  44. end;
  45. /
  46. exit
  47. EOF
  48. exit
  49. !
  50. cd /tmp
  51. str=`grep -n 'Wait Classes by Total Wait Time' $ORACLE_HOME/rdbms/admin/dailycheck_awr.txt`
  52. str1=${str%:*}
  53. str2=$(($str1+15))
  54. sed -n "/User I\/O/{$str1,$str2 p}" $ORACLE_HOME/rdbms/admin/dailycheck_awr.txt|awk '{print $5}'
  55. rm dailycheck_awr.txt
  56. echo ***************************************************************************************ASM free(MB)//////////////
  57. source /oracle/grid/.profile
  58. su - grid <<!
  59. cd /tmp
  60. asmcmd >asmfree.log <<EOF
  61. lsdg
  62. exit
  63. EOF
  64. exit
  65. !
  66. cd /tmp
  67. sed -n '2p' asmfree.log|awk '{print $8}'
  68. rm asmfree.log








来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26614613/viewspace-2059979/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-04-29

  • 博文量
    3
  • 访问量
    8226