Oracle AWR學習之二-利用ChatGPT編寫一鍵獲取AWR報告的腳本

Oracle AWR學習之二-ChatGPT提升效率之n


背景

之前生成awr報告比較麻煩, 想着能夠一鍵生成.
再輔以部分shell或者是python處理就可以進行細緻的分析.

這一塊其實還是比較簡單的, 在ChatGPT加持下的確能夠極大的提高自己的工作效率. 
但是懷疑國內的學習資料太low了, 需要處理很多研發錯誤纔可以繼續進行下一步的操作

ChatGPT的答覆

問題爲: shell一鍵獲取awr報告
回答爲: 
#!/bin/bash

# Oracle數據庫信息
ORACLE_SID=<SID>
ORACLE_HOME=<ORACLE_HOME>
ORACLE_USER=<USERNAME>
ORACLE_PASSWORD=<PASSWORD>

# 連接數據庫獲取AWR報告
sqlplus -S ${ORACLE_USER}/${ORACLE_PASSWORD}@${ORACLE_SID} << EOF
  set pagesize 0 feedback off verify off heading off echo off;
  spool awr_report.txt;
  select DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML((select max(snap_id)-1 from dba_hist_snapshot), (select max(snap_id) from dba_hist_snapshot)) from dual;
  spool off;
  exit;
EOF

echo "AWR report has been generated in awr_report.txt"

存在的問題

1. DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML 的語法不正確
2. 沒有采取文件變量.

修改後的一鍵獲取awr報告的SQL爲:

#!/bin/bash
# 注意這個SQL獲取的是最近6個小時的awr報告.  
ORACLE_SID=oradb
ORACLE_HOME='/u01/app/oracle/product/19.0.0/dbhome_1'
ORACLE_USER=system
ORACLE_PASSWORD=YourPassword
now=`date +%Y%m%d%H`

sqlplus -S ${ORACLE_USER}/${ORACLE_PASSWORD}@${ORACLE_SID} << EOF
  set pagesize 0 feedback off verify off heading off echo off;
  spool awr_report_${now}.html;
  select DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML((select dbid from v\$database),(select instance_number from v\$instance),(select min(snap_id) from dba_hist_snapshot where begin_interval_time >trunc(sysdate) - 6/24),(select max(snap_id) from dba_hist_snapshot where begin_interval_time >trunc(sysdate) - 6/24)) from dual ;
  spool off;
  exit;
EOF

echo "AWR report has been generated in awr_report_${now}.html"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章