Redo files
Fichiers REDO en ligne
Introduction
Chaque fois qu'une donnée est ajoutée supprimée ou modifiée dans une table ou tout autre objet une entrée est écrite dans le fichier redo. Ce fichier sera utilisé en cas de crash (matériel/logiciel) afin de reconstruire la base dans un état cohérent.
C'est ce qu'on appelle le journal de reprise ou "redo log".
Lorsque l'un d'eux est plein il est marqué ACTIVE si il est toujours nécessaire à la reprise sinon il est a INACTIVE le suivant passes à l'état CURRENT.
Ces fichiers sont regroupés en "membres" et en "groupes".
Les membres servent a multiplexer les fichiers (la perte d'un membre n'est pas critique le systeme sait repartir avec un membre en moins) et les groupes définissent la taille du redolog (taille totale = somme de la taille des groupes).
requêtes
Afin d'avoir une vison synthétique de ces fichiers la commande :
SELECT * FROM V$LOG;
Donne la liste du style:
GROUP# THREAD# SEQ# BYTES MEMBERS ARCHIVED STATUS 1 1 274793 52428800 1 NO ACTIVE 5789762043 10/02/2009 17:02 2 1 274794 52428800 1 NO CURRENT 5789762046 10/02/2009 17:02 3 1 274792 52428800 1 NO ACTIVE 5789658486 10/02/2009 16:49 4 1 274791 52429312 1 NO INACTIVE 5789658454 10/02/2009 16:49
De plus la commande:
SELECT MEMBER FROM V$LOGFILE
Nous donne la liste des fichiers sur le disque:
/adata01/oradata/db_data/db/redo01.log /adata01/oradata/db_data/db/redo02.log /adata01/oradata/db_data/db/redo03.log /adata01/oradata/db_data/db/redo04.log
Dans ce cas nous avons un seul "membre" car le disque est assure lui même la redondance. (Baie SAN)
Manipulation sur les groupes
Ajout d'un groupe
Lorsque cet espace deviens trop juste on constate des erreurs dans la alert log (fichier : alert_$DB.log)
Thread 1 cannot allocate new log, sequence 274786 Checkpoint not complete Current log# 3 seq# 274785 mem# 0: /adata01/oradata/intdb_data/intdb/redo03.log
Il faut alors ajouter un nouveau groupe:
alter database add logfile group 5 ('/adata01/oradata/db_data/db/redo05.log') size 52429312;
puis entrer deux fois la comande:
ALTER SYSTEM SWITCH LOGFILE;
Corriger un fichier corrompu
Dans le cas d'un fichier corrompu la commande :
ALTER DATABASE CLEAR LOGFILE GROUP 1;
Répare les fichiers de ce groupe. Il est nécessaire ensuite d'entrer deux fois la comande:
ALTER SYSTEM SWITCH LOGFILE;