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"