Redo files

De knowledge
Aller à la navigation Aller à la recherche

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;