awr報告每天自動生成指令碼
原版參考了別人寫的指令碼,不過有一些錯漏的地方,無法直接執行的,就自己做了修改
後面又根據自己業務需求,設定了下awr生成時間
#!/bin/bash
#載入一下oracle的環境變數檔案,不然 sqlplus 命令在crontab 計劃任務裡不能被執行(或者用 source /home/oracle/.bash_profile)
. /home/oracle/.bash_profile
#定義變數----生成awr報告的檔案型別
AWR_FORMAT=html
#定義變數---- 拉取幾天內的snap列表
NUM_DAYS=3
#定義變數----生成的awr報告的結束snap ID ,即:end_snap
MAX_SNAP_ID=$(echo `sqlplus -S / as sysdba <<EOF
set heading off trimspool on feedback off pagesize 0
SELECT trim(max(SNAP_ID))-3 FROM DBA_HIST_SNAPSHOT;
EOF`)
#定義變數----生成的awr報告的開始snap ID ,即:begin_snap
MIN_SNAP_ID=`expr $MAX_SNAP_ID - 24`
#生成的awr報告的檔案路徑及檔名
AWR_LOG=/home/oracle/AWR_shahand_`date '+%Y%m%d_%H%M'`.html
#生成awr報告
echo -e "$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID\n$MAX_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql)
改良版
oracle使用者下
crontab -e
00 8 * * * /home/oracle/auto_awr.sh
mkdir /home/oracle/awr_log/
vi /home/oracle/auto_awr.sh
#!/bin/bash
#每天早上8點執行,取昨天0點到今天0點的awr報告
#載入一下oracle的環境變數檔案,不然 sqlplus 命令在crontab 計劃任務裡不能被執行(或者用 source /home/oracle/.bash_profile)
. /home/oracle/.bash_profile
export ORACLE_SID=這裡填寫資料庫的sid
#定義變數----生成檔案的時間設定為前一天
shijian=$(date --date='1 days ago' +%Y%m%d)
#定義變數----生成awr報告的檔案型別
AWR_FORMAT=html
#定義變數---- 拉取幾天內的snap列表
NUM_DAYS=3
#定義變數----生成的awr報告的結束snap ID ,即:end_snap
MAX_SNAP_ID=$(echo `sqlplus -S / as sysdba <<EOF
set heading off trimspool on feedback off pagesize 0
SELECT trim(max(SNAP_ID))-8 FROM DBA_HIST_SNAPSHOT;
EOF`)
#定義變數----生成的awr報告的開始snap ID ,即:begin_snap
MIN_SNAP_ID=`expr $MAX_SNAP_ID - 24`
#生成的awr報告的檔案路徑及檔名
AWR_LOG=/home/oracle/awr_log/AWR_shahand_ ${shijian}_00_24_${ORACLE_SID}.html
#生成awr報告
echo -e "$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID\n$MAX_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql)
#每天早上8點執行,取昨天9點到昨天17點的awr報告
#最大值減去15就是昨天的17點
MAX_SNAP_ID=$(echo `sqlplus -S / as sysdba <<EOF
set heading off trimspool on feedback off pagesize 0
SELECT trim(max(SNAP_ID))-15 FROM DBA_HIST_SNAPSHOT;
EOF`)
#最小值=最大值減去8就是9點了,這裡expr裡面的計算兩個值之間與減號一定要有空格,否則報錯
MIN_SNAP_ID=`expr $MAX_SNAP_ID - 8`
#設定awr報告生成路徑及檔名
AWR_LOG=/home/oracle/awr_log/AWR_shahand_${shijian}_09_17_${ORACLE_SID}.html
#生成awr報告的命令
echo -e "$AWR_FORMAT\n$NUM_DAYS\n$MIN_SNAP_ID\n$MAX_SNAP_ID\n$AWR_LOG\n"|(sqlplus -S / as sysdba @?/rdbms/admin/awrrpt.sql)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-2654421/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- Oracle生成awr報告操作步驟Oracle
- SQL Server映象自動生成指令碼方法SQLServer指令碼
- 本機生成遠端資料庫AWR報告資料庫
- 用bat指令碼自動生成安裝包InnosetupBAT指令碼
- 生成 Linux 執行時間報告的 Bash 指令碼Linux指令碼
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- 如何在12.2版本ADG備庫生成AWR報告
- 達夢資料庫如何來配置並生成AWR報告資料庫
- Jmeter 介面自動化連載 (13) - 自動生成測試報告JMeter測試報告
- [20230203]完善awr.sql指令碼.txtSQL指令碼
- oracle rac 單個例項不能生成awr報告的問題Oracle
- 介面自動化使用requests生成測試報告測試報告
- AWR報告基礎操作
- 我也用Node寫個每天給她自動發微信的指令碼指令碼
- specjvm自動化指令碼JVM指令碼
- 自動備份指令碼指令碼
- Oracle 11.2.0.3.0中執行awrrpt.sql生成awr報告報ora-06502錯誤OracleSQL
- Ubuntu自動啟動配置指令碼Ubuntu指令碼
- [自動化]基於kolla部署的openstack自動化巡檢生成xlsx報告
- [20221208]完善bind_cap_awr.sql指令碼.txtSQL指令碼
- Python——自動簽到指令碼Python指令碼
- Dockerfile---指令碼自動化Docker指令碼
- vue自動化部署指令碼Vue指令碼
- 「懶惰的美德」我用 python 寫了個自動生成給文件生成索引的指令碼Python索引指令碼
- redolog生成指令碼指令碼
- 介面自動化 是 pytest 結合 allure 生成報告問題
- ORACLE AWR效能報告和ASH效能報告的解讀Oracle
- centos 自動啟動指令碼和自啟動服務CentOS指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- chagpt自動生成PPT程式碼GPT
- Android JNI 程式碼自動生成Android
- 程式碼自動生成外掛:
- [20230220][20230110]生成相關備庫的awr報表
- 在 CentOS/RHEL 系統上生成補丁合規報告的 Bash 指令碼CentOS指令碼
- awr-----一份經典的負載很高的awr報告負載
- iOS —— 兩套自動打包指令碼iOS指令碼
- mydumper自動化安裝指令碼指令碼