La requête suivante permet de cartographier heure par heure les switches de redolog. Cette information permet de connaitre les pics de forte activité transactionnelle de la base.

set linesize 150;
select
to_char(first_time,'YYYY-MM-DD') Jour,
to_char(sum(decode(to_char(first_time,'HH24'),'00',1,0)),'999') "  00",
to_char(sum(decode(to_char(first_time,'HH24'),'01',1,0)),'999') "  01",
to_char(sum(decode(to_char(first_time,'HH24'),'02',1,0)),'999') "  02",
to_char(sum(decode(to_char(first_time,'HH24'),'03',1,0)),'999') "  03",
to_char(sum(decode(to_char(first_time,'HH24'),'04',1,0)),'999') "  04",
to_char(sum(decode(to_char(first_time,'HH24'),'05',1,0)),'999') "  05",
to_char(sum(decode(to_char(first_time,'HH24'),'06',1,0)),'999') "  06",
to_char(sum(decode(to_char(first_time,'HH24'),'07',1,0)),'999') "  07",
to_char(sum(decode(to_char(first_time,'HH24'),'08',1,0)),'999') "  08",
to_char(sum(decode(to_char(first_time,'HH24'),'09',1,0)),'999') "  09",
to_char(sum(decode(to_char(first_time,'HH24'),'10',1,0)),'999') "  10",
to_char(sum(decode(to_char(first_time,'HH24'),'11',1,0)),'999') "  11",
to_char(sum(decode(to_char(first_time,'HH24'),'12',1,0)),'999') "  12",
to_char(sum(decode(to_char(first_time,'HH24'),'13',1,0)),'999') "  13",
to_char(sum(decode(to_char(first_time,'HH24'),'14',1,0)),'999') "  14",
to_char(sum(decode(to_char(first_time,'HH24'),'15',1,0)),'999') "  15",
to_char(sum(decode(to_char(first_time,'HH24'),'16',1,0)),'999') "  16",
to_char(sum(decode(to_char(first_time,'HH24'),'17',1,0)),'999') "  17",
to_char(sum(decode(to_char(first_time,'HH24'),'18',1,0)),'999') "  18",
to_char(sum(decode(to_char(first_time,'HH24'),'19',1,0)),'999') "  19",
to_char(sum(decode(to_char(first_time,'HH24'),'20',1,0)),'999') "  20",
to_char(sum(decode(to_char(first_time,'HH24'),'21',1,0)),'999') "  21",
to_char(sum(decode(to_char(first_time,'HH24'),'22',1,0)),'999') "  22",
to_char(sum(decode(to_char(first_time,'HH24'),'23',1,0)),'999') "  23"
from
v$log_history
group by
to_char(first_time,'YYYY-MM-DD')
order by  1;

L'image ci-dessous présente le résultat. redolog.png L'exemple présente une base de type datawarehouse, montrant les périodes de chargement de nouvelles données. Le nombre très élevés de switches certaines heures montre une taille trop faible des fichiers de redolog. Il importe toutefois de vérifier si les alertes comporte de erreur type 'Checkpoint not complete'.

La requête suivante donne un résultat permettant d'estimer la volumétrie journalière, utile pour calculer la taille disque supplémentaire pour passer une base en mode archivelog.

select A.*,
round(A.Count#*B.Moy#/1024/1024) Moy_Jour_Mo
from
  ( 
  select
    to_char(First_Time,'YYYY-MM-DD') JOUR,
    count(1) Count#,
    Min(RECID) Min#,
    Max(RECID) Max#
   from v$log_history
   group by
      to_char(First_Time,'YYYY-MM-DD')
   order by 1 desc  
   ) A,
  (
   select
   avg(BYTES) Moy#,
   count(1) Count#,
   max(BYTES) Max_Bytes,
   min(BYTES) Min_Bytes
   from v$log
  ) B;

L'image ci-dessous présente le résultat, les tailles sont en Go. Capture2.png

Cette base peut donc générer près de 240Go d'archivelog par jour.