Anzahl der Redo Log Switches einer Oracle-Datenbank
Sie möchten auswerten, wieiviele Log Switches in den letzten Betriebstagen angefallen sind? Das folgende Skript gibt Ihnen Auskunft, in dem es die Views v$log_history bzw. v$archived_log überprüft und die Log Switches über Tag und Uhrzeit kulminiert:
SET lines 150 SET trimspool ON SET trimout ON COL 00:00 FORMAT 99999 COL 01:00 FORMAT 99999 COL 02:00 FORMAT 99999 COL 03:00 FORMAT 99999 COL 04:00 FORMAT 99999 COL 05:00 FORMAT 99999 COL 06:00 FORMAT 99999 COL 07:00 FORMAT 99999 COL 08:00 FORMAT 99999 COL 09:00 FORMAT 99999 COL 10:00 FORMAT 99999 COL 11:00 FORMAT 99999 COL 12:00 FORMAT 99999 COL 13:00 FORMAT 99999 COL 14:00 FORMAT 99999 COL 15:00 FORMAT 99999 COL 16:00 FORMAT 99999 COL 17:00 FORMAT 99999 COL 18:00 FORMAT 99999 COL 19:00 FORMAT 99999 COL 20:00 FORMAT 99999 COL 21:00 FORMAT 99999 COL 22:00 FORMAT 99999 COL 23:00 FORMAT 99999 SELECT * FROM ( SELECT * FROM ( SELECT TO_CHAR(FIRST_TIME, 'DD/MM') AS "DAY" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '00', 1, 0), '99' ) ) "00:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '01', 1, 0), '99' ) ) "01:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '02', 1, 0), '99' ) ) "02:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '03', 1, 0), '99' ) ) "03:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '04', 1, 0), '99' ) ) "04:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '05', 1, 0), '99' ) ) "05:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '06', 1, 0), '99' ) ) "06:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '07', 1, 0), '99' ) ) "07:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '08', 1, 0), '99' ) ) "08:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '09', 1, 0), '99' ) ) "09:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '10', 1, 0), '99' ) ) "10:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '11', 1, 0), '99' ) ) "11:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '12', 1, 0), '99' ) ) "12:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '13', 1, 0), '99' ) ) "13:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '14', 1, 0), '99' ) ) "14:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '15', 1, 0), '99' ) ) "15:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '16', 1, 0), '99' ) ) "16:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '17', 1, 0), '99' ) ) "17:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '18', 1, 0), '99' ) ) "18:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '19', 1, 0), '99' ) ) "19:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '20', 1, 0), '99' ) ) "20:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '21', 1, 0), '99' ) ) "21:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '22', 1, 0), '99' ) ) "22:00" , SUM (TO_NUMBER ( DECODE (TO_CHAR(FIRST_TIME, 'HH24'), '23', 1, 0), '99' ) ) "23:00" FROM V$LOG_HISTORY WHERE extract(year FROM FIRST_TIME) = extract(year FROM sysdate) GROUP BY TO_CHAR(FIRST_TIME, 'DD/MM') ) ORDER BY TO_DATE(extract(year FROM sysdate) || DAY, 'YYYY DD/MM') DESC ) WHERE ROWNUM <8;
Die Ausgabe kann beispielsweise wie folgt aussehen:
Tag 00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00 ...
----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
02/02 4 1 1 0 1 1 0 1 2 1 3 ...
01/02 2 0 1 1 0 1 1 0 1 1 1
31/01 3 1 1 1 0 1 0 1 1 1 2
30/01 4 2 1 1 1 1 1 1 1 2 3
29/01 0 0 0 0 0 0 0 0 0 7 16
28/01 0 0 0 0 0 0 0 0 0 0 0
Lutz Fröhlich
held-informatik
de
info