亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4823 | 回復: 2
打印 上一主題 下一主題

將指定時段AWR_REPORT發(fā)送到你的email的方法(10G以上) [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-01-06 13:01 |只看該作者 |倒序瀏覽
前段時間用shell寫了個腳本獲取awr_report..今天重新整理了下.
改用存儲過程來獲得awr_report,用shell分析alert_log,并將他們一并發(fā)送到自己的mail中.
方法記錄:
1.在數據庫中創(chuàng)建一個目錄.這是awr的報表文件輸出目錄.必須有oracle用戶的寫權限.
CREATE OR REPLACE DIRECTORY awr_reports_dir AS '/oracle/my_script/report_file';

2.創(chuàng)建獲取awr_report的存儲過程.
  TO_CHAR(SYSDATE-1,'YYYY-MM-DD')||' 09' -- 上午九點起
  TO_CHAR(SYSDATE-1,'YYYY-MM-DD')||' 17' -- 下午六點結束
  通過這兩個時間的指定.將生成這個時間段之間的每一個小時一份的awr報表到awr_reports_dir目錄里.
   過程開始:

  1. create or replace procedure auto_awr_reports
  2. as
  3.   l_snap_start       NUMBER ;
  4.   l_snap_end         NUMBER ;
  5.   l_dir              VARCHAR2(50) := 'AWR_REPORTS_DIR';
  6.   l_last_snap        NUMBER := NULL;
  7.   l_dbid             v$database.dbid%TYPE;
  8.   l_instance_number  v$instance.instance_number%TYPE;
  9.   l_file             UTL_FILE.file_type;
  10.   l_file_name        VARCHAR(50);
  11. BEGIN
  12.   SELECT dbid
  13.   INTO   l_dbid
  14.   FROM   v$database;
  15.   SELECT instance_number
  16.   INTO   l_instance_number
  17.   FROM   v$instance;
  18.   SELECT snap_id
  19.   INTO   l_snap_start
  20.   FROM   DBA_HIST_SNAPSHOT
  21.   WHERE TO_CHAR(BEGIN_INTERVAL_TIME,'YYYY-MM-DD HH24') = TO_CHAR(SYSDATE-1,'YYYY-MM-DD')||' 09';
  22.   SELECT snap_id
  23.   INTO   l_snap_end
  24.   FROM   DBA_HIST_SNAPSHOT
  25.   WHERE TO_CHAR(BEGIN_INTERVAL_TIME,'YYYY-MM-DD HH24') = TO_CHAR(SYSDATE-1,'YYYY-MM-DD')||' 17';
  26.   FOR cur_snap IN (SELECT snap_id
  27.                    FROM   dba_hist_snapshot
  28.                    WHERE  instance_number = l_instance_number
  29.                    AND    snap_id BETWEEN l_snap_start AND l_snap_end
  30.                    ORDER BY snap_id)
  31.   LOOP
  32.     IF l_last_snap IS NOT NULL THEN
  33.       l_file := UTL_FILE.fopen(l_dir, 'awr_' || l_last_snap || '_' || cur_snap.snap_id || '.htm', 'w', 32767);
  34.       FOR cur_rep IN (SELECT output
  35.                       FROM   TABLE(DBMS_WORKLOAD_REPOSITORY.awr_report_html(l_dbid, l_instance_number, l_last_snap,cur_snap.snap_id)))
  36.       LOOP
  37.         UTL_FILE.put_line(l_file, cur_rep.output);
  38.       END LOOP;
  39.       UTL_FILE.fclose(l_file);
  40.     END IF;
  41.     l_last_snap := cur_snap.snap_id;
  42.   END LOOP;
  43. EXCEPTION
  44.   WHEN OTHERS THEN
  45.     IF UTL_FILE.is_open(l_file) THEN
  46.       UTL_FILE.fclose(l_file);
  47.     END IF;
  48.     RAISE;
  49. END;
  50. /
復制代碼

  過程結束.


3.在系統(tǒng)里創(chuàng)建shell腳本,shell腳本里使用了mutt來發(fā)送附件.要有sendmail支持發(fā)郵件..
內容如下:

腳本開始:

  1. #!/bin/bash
  2. # ORACLE ENV.
  3. # 自己定義你的oracle環(huán)境變量.因為要用cron來執(zhí)行這個腳本.必須包含oracle的環(huán)境變量.
  4. #
  5. #
  6. export_path=/oracle/my_script/report_file
  7. # ANALYZE ORACLE ALERT LOG.
  8. # export file /oracle/my_script/report_file/analyze_$(date +%F).log
  9. #
  10. export LANG=C
  11. my_str=$(date -d "-1 day" "+%a %b %d")
  12. alert_log_file=/oracle/app/diag/rdbms/cecis/cecis/trace/alert_cecis.log
  13. export_analyze_file=$export_path/analyze_$(date +%F).log
  14. grep -A 10 "$my_str" $alert_log_file | grep -A 3 -B 1 -ni "warn\|err\|ORA-\|not" >> $export_analyze_file
  15. #
  16. # excute procedure AUTO_AWR_REPORTS.
  17. # report awr_report_files at time 09:00 - 18:00
  18. #
  19. $ORACLE_HOME/bin/sqlplus -s "/ as sysdba" >/dev/null 2>&1  <<EOF
  20. EXEC AUTO_AWR_REPORTS;
  21. EXIT
  22. EOF
  23. #
  24. # get all analye files
  25. #
  26. awr_files=$(for i in $(ls -A $export_path) ;do echo "-a $export_path/$i";done|xargs)
  27. #
  28. # mail to my Email. and delete analyze files.
  29. #
  30. mutt -s "$(date +%F)_ORACLE_REPORT" "寫上你的接收EMail地址" $awr_files < /etc/sysconfig/network-scripts/ifcfg-eth0 && rm -rf /oracle/my_script/report_file/*
  31. #
  32. # end
  33. exit
復制代碼

腳本結束.

4.在cron中建立這個腳本的啟動時間.每天晚上3點.
$ crontab -l
0 3 * * * /oracle/my_script/analyze_alter_log.sh
這樣就能每天在mail里查看前一天的每小時的awr和告警日志信息了.

[ 本帖最后由 Seker 于 2009-1-6 13:19 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2009-01-06 15:16 |只看該作者
支持知識共享,雖然我覺得這事不需要這么麻煩

論壇徽章:
0
3 [報告]
發(fā)表于 2009-01-06 16:45 |只看該作者
恩  不錯   不過好像不支持HP-UNIX

grep -A 10 "$my_str" $alert_log_file | grep -A 3 -B 1 -ni "warn\|err\|ORA-\|not" >> $export_analyze_file

請問這條命令在HP-UNIX下怎么實現?  
HP里面沒有-A的參數  用-n代替不了。。

[ 本帖最后由 愛之旅 于 2009-1-6 17:27 編輯 ]
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協(xié)會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP