oracle rac自动生成awr

cat awr.sql ######EXEC P_AWR_REPORT(‘201604251000‘, ‘201604251100‘, ‘D_OUTPUT‘, ‘‘, FALSE); FALSE为rac生成awr

EXEC P_AWR_REPORT(‘201604251000‘, ‘201604251100‘, ‘D_OUTPUT‘, ‘‘, FALSE);
CREATE DIRECTORY D_OUTPUT AS ‘/oracle/products/11.2/db/scripts/mon/log‘;
CREATE DIRECTORY D_OUTPUT AS ‘/oracle/db/scripts/mon/log‘;
############sqlplus下新建DIRECTORY后在sqlplus下执行一下存储过程执行完毕后执行EXEC P_AWR_REPORT(‘201604251000‘, ‘201604251100‘, ‘D_OUTPUT‘, ‘‘, FALSE);测试####################
CREATE OR REPLACE PROCEDURE P_AWR_REPORT (
P_BEGIN IN VARCHAR2,
P_END IN VARCHAR2,
P_DIR IN VARCHAR2,
P_DBNAME IN VARCHAR2 DEFAULT ‘‘,
P_PERINTERVAL IN BOOLEAN DEFAULT FALSE) AS
TYPE T_VARCHAR IS TABLE OF VARCHAR2(1500 CHAR) INDEX BY BINARY_INTEGER;
V_REPORT T_VARCHAR;
V_FILE UTL_FILE.FILE_TYPE;
TYPE T_NUM IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE T_DATE IS TABLE OF DATE INDEX BY BINARY_INTEGER;
V_INSTANCE T_NUM;
V_SNAP_BEG T_NUM;
V_SNAP_END T_NUM;
V_BEGIN_DATE T_DATE;
V_END_DATE T_DATE;
V_BEGIN NUMBER;
V_END NUMBER;
V_DBID NUMBER;
V_DBNAME V$DATABASE.NAME%TYPE;
BEGIN

IF P_DBNAME IS NOT NULL THEN
SELECT DISTINCT DBID, DB_NAME
INTO V_DBID, V_DBNAME
FROM DBA_HIST_DATABASE_INSTANCE
WHERE DB_NAME = P_DBNAME;
ELSE
SELECT DBID, NAME
INTO V_DBID, V_DBNAME
FROM V$DATABASE;
END IF;

SELECT DISTINCT INSTANCE_NUMBER,
FIRST_VALUE(SNAP_ID) OVER(PARTITION BY INSTANCE_NUMBER ORDER BY ABS(CAST (END_INTERVAL_TIME AS DATE) - TO_DATE(P_BEGIN, ‘YYYYMMDDHH24MISS‘))),
FIRST_VALUE(END_INTERVAL_TIME) OVER(PARTITION BY INSTANCE_NUMBER ORDER BY ABS(CAST (END_INTERVAL_TIME AS DATE) - TO_DATE(P_BEGIN, ‘YYYYMMDDHH24MISS‘)))
BULK COLLECT INTO V_INSTANCE, V_SNAP_BEG, V_BEGIN_DATE
FROM DBA_HIST_SNAPSHOT
WHERE DBID = V_DBID
ORDER BY INSTANCE_NUMBER;

FOR I IN V_INSTANCE.FIRST..V_INSTANCE.LAST LOOP
BEGIN
SELECT DISTINCT FIRST_VALUE(SNAP_ID) OVER(ORDER BY ABS(CAST (END_INTERVAL_TIME AS DATE) - TO_DATE(P_END, ‘YYYYMMDDHH24MISS‘))),
FIRST_VALUE(END_INTERVAL_TIME) OVER(ORDER BY ABS(CAST (END_INTERVAL_TIME AS DATE) - TO_DATE(P_END, ‘YYYYMMDDHH24MISS‘)))
INTO V_SNAP_END(I), V_END_DATE(I)
FROM DBA_HIST_SNAPSHOT
WHERE SNAP_ID > V_SNAP_BEG(I)
AND DBID = V_DBID
AND INSTANCE_NUMBER = V_INSTANCE(I);
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_INSTANCE.DELETE(I);
END;
END LOOP;

IF V_INSTANCE.COUNT = 1
THEN
V_BEGIN := V_SNAP_BEG(1);
IF P_PERINTERVAL = FALSE
THEN
V_END := V_SNAP_END(1);
ELSE
V_END := V_SNAP_BEG(1) + 1;
SELECT END_INTERVAL_TIME
INTO V_END_DATE(1)
FROM DBA_HIST_SNAPSHOT
WHERE DBID = V_DBID
AND INSTANCE_NUMBER = 1
AND SNAP_ID = V_END;
END IF;
WHILE(V_END <= V_SNAP_END(1)) LOOP
V_FILE := UTL_FILE.FOPEN(
P_DIR,
‘awrrpt_‘ || V_DBNAME || ‘_‘ || V_INSTANCE(1) || ‘_‘
|| TO_CHAR(V_BEGIN_DATE(1), ‘YYYYMMDDHH24MI‘) || ‘_‘
|| TO_CHAR(V_END_DATE(1), ‘YYYYMMDDHH24MI‘) || ‘.html‘,
‘w‘,
32767);

SELECT OUTPUT
BULK COLLECT INTO V_REPORT
FROM TABLE(
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
V_DBID,
V_INSTANCE(1),
V_BEGIN,
V_END,
0));
FOR I IN 1..V_REPORT.COUNT LOOP
UTL_FILE.PUT_LINE(V_FILE, V_REPORT(I));
END LOOP;
UTL_FILE.FCLOSE(V_FILE);
V_BEGIN := V_BEGIN + 1;
V_END := V_END + 1;
V_BEGIN_DATE(1) := V_END_DATE(1);
SELECT END_INTERVAL_TIME
INTO V_END_DATE(1)
FROM DBA_HIST_SNAPSHOT
WHERE DBID = V_DBID
AND INSTANCE_NUMBER = 1
AND SNAP_ID = V_END;
END LOOP;
ELSE
FOR I IN V_INSTANCE.FIRST..V_INSTANCE.LAST LOOP
V_BEGIN := V_SNAP_BEG(I);
IF P_PERINTERVAL = FALSE
THEN
V_END := V_SNAP_END(I);
ELSE
V_END := V_SNAP_BEG(I) + 1;
SELECT END_INTERVAL_TIME
INTO V_END_DATE(I)
FROM DBA_HIST_SNAPSHOT
WHERE DBID = V_DBID
AND INSTANCE_NUMBER = V_INSTANCE(I)
AND SNAP_ID = V_END;
END IF;
WHILE(V_END <= V_SNAP_END(I)) LOOP
V_FILE := UTL_FILE.FOPEN(
P_DIR,
‘awrrpt_‘ || V_DBNAME || ‘_‘ || V_INSTANCE(I) || ‘_‘
|| TO_CHAR(V_BEGIN_DATE(I), ‘YYYYMMDDHH24MI‘) || ‘_‘
|| TO_CHAR(V_END_DATE(I), ‘YYYYMMDDHH24MI‘) || ‘.html‘,
‘w‘,
32767);

SELECT OUTPUT
BULK COLLECT INTO V_REPORT
FROM TABLE(
DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
V_DBID,
V_INSTANCE(I),
V_BEGIN,
V_END,
0));
FOR I IN 1..V_REPORT.COUNT LOOP
UTL_FILE.PUT_LINE(V_FILE, V_REPORT(I));
END LOOP;
UTL_FILE.FCLOSE(V_FILE);
V_BEGIN := V_BEGIN + 1;
V_END := V_END + 1;
V_BEGIN_DATE(I) := V_END_DATE(I);
SELECT END_INTERVAL_TIME
INTO V_END_DATE(I)
FROM DBA_HIST_SNAPSHOT
WHERE DBID = V_DBID
AND INSTANCE_NUMBER = V_INSTANCE(I)
AND SNAP_ID = V_END;
END LOOP;
END LOOP;
END IF;
END;
/

cat awr.sh#!/usr/bin/ksh

#. ~/.profile #AIX小机使用 linux下注释掉即可
#DATE=`date +‘%Y%m%d‘`
TZ=BEIST-8
DATE=`TZ=$TZ+12;date +%Y%m%d`
#一下脚本没半个小时生成一次,awr ash addm
sqlplus / as sysdba<<eof
purge dba_recyclebin;
set serveroutput on
set timing on
set time on
begin
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, ‘D_OUTPUT‘, ‘‘, false);
p_awr_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, ‘D_OUTPUT‘, ‘‘, false);
p_ash_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘0930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1400‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1430‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1500‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1530‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1600‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1630‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1700‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1730‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1800‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1830‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1900‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘1930‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2000‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2030‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2100‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2130‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2200‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2230‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2300‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, ‘D_OUTPUT‘, ‘‘, false);
p_addm_report(to_char(sysdate-1,‘YYYYMMDD‘)||‘2330‘, to_char(sysdate-1,‘YYYYMMDD‘)||‘0000‘, ‘D_OUTPUT‘, ‘‘, false);
end;
/
exit;
eof

cd $ORACLE_HOME/scripts/mon/log
find . -name "*rpt_ORCLDB_*$DATE*" -print|xargs tar -cvf $ORACLE_HOME/scripts/report/report_ORCLDB_${DATE}.tar
find . -name "*rpt_ORCLDB_*$DATE*" -print|xargs rm -f
gzip -f $ORACLE_HOME/scripts/report/report_ORCLDB_${DATE}.tar

HOST_IP=xxxxx
USRNM="ftp"
PWD="xxxx"
LOCAL_DIR=$ORACLE_HOME/scripts/report
REMOTE_DIR=/sys_xj/ftp

ftp -inv $HOST_IP<<!
user ${USRNM} ${PWD}
bin
prompt
lcd ${LOCAL_DIR}
cd ${REMOTE_DIR}
mput report_NDYXDB_${DATE}.tar.gz
bye
!
exit

时间: 2024-11-06 03:28:34

oracle rac自动生成awr的相关文章

Oracle 每天自动生成AWR报告

经验丰富的老员工希望能够每天为数据库生成1个AWR报告,以便于后期分析数据库的性能变化,手动生成太麻烦,查了一下资料,发现可以自动生成,过程如下. 数据库环境:11gR2 RAC(双节点) AWR报告:由于是RAC数据库,希望生成每个节点的报告及全局报告,时间段为:第一天的0点~第二天的0点. (1)在oracle服务器上创建路径 server2$[/home/oracle]mkdir awrreport (2)创建directory并授权(使用sys账户执行) create or replac

ORACLE uuid自动生成主键

-- Create table create table TECHNOLOGYCOMPANY ( ID VARCHAR2(32) default SYS_GUID() not null, FLOWID VARCHAR2(50), CONPANYID NUMBER, ISCOMMUNICATION VARCHAR2(10) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1

一个自动生成awr报告的shell脚本

最近在学习shell编程,搞一点点小工具自动完成awr报告的收集工作,方便系统出现问题时问题排查.脚本内容如下,系统收集每天开始时间6点结束时间20点的awr报告并存储在/u01/shell_t/awr/目录下 #! /bin/sh export ORACLE_SID=PROD1export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 m=(`sqlplus -S "/

oracle中如何生成awr报告

1.进入数据库 sqlplus / as sysdba 2.查看用户 show parameter db_name 3.开始压测后执行 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 4. 结束压测后执行 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 5.输入命令 @?/rdbms/admin/awrrpt 备注:4和5步骤中不执行,后面默认产生系统规定的时间节点(默认人一小时生成一次报告)

【oracle中如何生成awr报告】

1.进入数据库 sqlplus / as sysdba 2.查看用户 show parameter db_name 3.开始压测后执行 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 4. 结束压测后执行 exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); 5.输入命令 @?/rdbms/admin/awrrpt 备注:4和5步骤中不执行,后面默认产生系统规定的时间节点(默认人一小时生成一次报告)

python实现自动生成oracle awr报告

目前在规划.开发性能自动化执行框架,其中有个环节很有意思,就是如何通过框架自动获得场景执行期间的oracle awr报告.虽然Oracle客户端提供的awrrpt.sql脚本可以提供交互方式生成awr报告,但并不能直接使用在自动化框架中,至少需要做一些改造,将交互的模式变成可以静默执行. 一 问题分析 经过对问题的分析,有两种基本的解决思路: A.  在oracle服务器上部署shell脚本,使用shell命令启动oracle的sqlplus执行autoawr.sql,其中autoawr.sql

Oracle AWR报告自动生成并ftp脚本

脚本主要由以下几个部分组成: awr.sql 用来在sqlplus 中执行的脚本,该脚本从网上直接找的. awr.sh 用来调用sqlplus来生成awr报告. ftp.sh 用来打包压缩每天生成的awr报告(压缩率大于50倍),并进行ftp传输,清理过期的报告,对于linux和solaris略有不同. crontab 用来执行定时任务,根据需求进行调整. 下面为具体的脚本内容,可以根据需要进行调整. awr.sql : 1 set echo off; 2 set veri off; 3 set

Oracle 11g AWR 系列五:如何生成 AWR 报告?

1.生成单实例 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpt.sql2.生成 Oracle RAC AWR 报告:@$ORACLE_HOME/rdbms/admin/awrgrpt.sql3.生成 RAC 环境中特定数据库实例的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpti.sql4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法:@$ORACLE_HOME/rdbms/admin/awrgrpti.s

ORACLE AWR概述及生成AWR报告

1.Overview of the Automatic Workload Repository The Automatic Workload Repository (AWR) collects, processes, and maintains performance statistics for problem detection and self-tuning purposes. This data is both in memory and stored in the database.