English version on dbi services blog
Avez-vous déjà vérifié si la FRA gère bien votre DELETION POLICY ? C’est important de ne pas supprimer de archived logs nécessaire même si on a besoin de place. Et c’est important aussi de ne pas se retrouver avec une FRA pleine. La vue v$recovery_area_usage montre le pourcentage de l’espace qui est récupérable, mais aucune vue ne donne la liste, ou au moins les dates des archivelogs correspondant.
J’ai eu besoin d’aller dans le détail pour analyser pourquoi les archived logs de la standby n’étaient pas supprimés. C’est un bug en 11.2 qui fait que même avec CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY une standby en MOUNT ne rafraîchit pas le flag des archived logs récupérables.
Tout le détail est ici.
Voici la requête (issue de la définition interne de la vue v$recovery_area_usage ) qui permet de voir lesquels sont récupérables en fonction du nombre de backups et du fait qu’ils ont été appliqués sur les standby:
column deleted format a7 column reclaimable format a11 set linesize 120 select applied,deleted,backup_count ,decode(rectype,11,'YES','NO') reclaimable,count(*) ,to_char(min(completion_time),'dd-mon hh24:mi') first_time ,to_char(max(completion_time),'dd-mon hh24:mi') last_time ,min(sequence#) first_seq,max(sequence#) last_seq from v$archived_log left outer join sys.x$kccagf using(recid) where is_recovery_dest_file='YES' group by applied,deleted,backup_count,decode(rectype,11,'YES','NO') order by min(sequence#) /
Un exemple du résultat sur la Primaire, en CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY BACKED UP 1 TIMES TO DISK:
APPLIED DELETED BACKUP_COUNT RECLAIMABLE COUNT(*) FIRST_TIME LAST_TIME FIRST_SEQ LAST_SEQ --------- ------- ------------ ----------- -------- ------------ ------------ --------- -------- NO YES 1 NO 277 15-jan 17:56 19-jan 09:49 5936 6212 NO NO 1 YES 339 19-jan 10:09 22-jan 21:07 6213 6516 NO NO 0 NO 33 22-jan 21:27 23-jan 07:57 6517 6549
Les redo logs archivés avant le 19-jan 09:49 ont été supprimés. Ceux qui ont été backupés sont toujours là mais supprimables. Les autres doivent rester jusqu’à leur backup.
Et un exemple sur la Standby en CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY:
APPLIED DELETED BACKUP_COUNT RECLAIMABLE COUNT(*) FIRST_TIME LAST_TIME FIRST_SEQ LAST_SEQ --------- ------- ------------ ----------- -------- ------------ ------------ --------- -------- YES YES 0 NO 746 07-jan 13:27 17-jan 11:17 5320 6065 YES NO 0 YES 477 17-jan 11:37 23-jan 05:37 6066 6542 YES NO 0 NO 8 23-jan 05:57 23-jan 08:14 6543 6550 IN-MEMORY NO 0 NO 1 23-jan 08:15 23-jan 08:15 6551 6551
Normalement, seul le redo en cours d’application (je suis en SYNC) ne serait pas récupérable. A cause d’un bug le flag ‘récupérable’ n’a pas été mis à jour depuis le 23-jan 05:57, date où le job de backup refait un CONFIGURE ARCHIVELOG DELETION POLICY qui rafraîchit ce flag.