Fichiers de contrôle et de journalisation
Gestion des fichiers de contrôle
1. Rappel sur le fichier de contrôle
Le fichier de contrôle contient des informations de contrôle sur la base de données :
-
le nom de la base de données ;
-
la date et l’heure de création de la base de données ;
-
l’emplacement des autres fichiers de la base de données (fichiers de données et fichiers de journalisation) ;
-
le numéro de séquence actuel des fichiers de journalisation ;
-
des informations sur les points de reprise (checkpoint),
-
etc.
Le fichier de contrôle est automatiquement mis à jour par Oracle lors de chaque modification de la structure de la base de données (ajout ou déplacement d’un fichier par exemple). La taille du fichier de contrôle est déterminée par Oracle.
Lorsqu’une instance est lancée pour ouvrir une base de données, le fichier de contrôle est le premier fichier ouvert. Il permet ensuite à l’instance de localiser et d’ouvrir les autres fichiers de la base de données. Si le fichier de contrôle ne peut pas être trouvé (ou est endommagé), la base de données ne peut pas être montée, même si les autres fichiers de la base de données sont présents (l’instance reste dans le statut NOMOUNT). Différents scénarios de restauration sont alors disponibles en fonction de la situation (présence ou non d’une sauvegarde du fichier de contrôle, notamment) pour redémarrer la base de données, mais ce sont des scénarios relativement complexes.
Pour des raisons de sécurité, il est donc conseillé de multiplexer le fichier de contrôle, c’est-à-dire de disposer de plusieurs copies gérées en miroir (multiplexées) par Oracle. Techniquement, il est possible de créer une base de données avec un seul fichier de contrôle mais il est vivement conseillé d’utiliser plusieurs copies, même si le serveur ne comprend qu’un disque (cela met à l’abri d’une suppression accidentelle).
Plusieurs fichiers de contrôle peuvent être spécifiés lors de la création de la base (chapitre Création d’une nouvelle base de données)...
Gestion des fichiers de journalisation
1. Rappel sur les fichiers de journalisation
Les fichiers de journalisation (redo log) enregistrent toutes les modifications apportées à la base de données. Ils sont organisés en groupes écrits de manière circulaire ; les informations sauvegardées sont donc, par défaut, périodiquement écrasées.
Les fichiers de journalisation sont utilisés pour la restauration de l’instance après un arrêt anormal et pour la restauration de média si un fichier de données est perdu ou endommagé ; dans ce cas, ils sont appliqués à une sauvegarde de fichier de données pour rejouer toutes les modifications survenues entre la sauvegarde et l’incident ayant endommagé le fichier.
Les fichiers de journalisation sont organisés en groupes (au minimum deux) composés d’un ou de plusieurs membres (minimum un) ; ils sont créés lors de la définition de la base (chapitre Création d’une nouvelle base de données). À l’intérieur d’un groupe, les membres sont écrits simultanément en miroir par l’instance Oracle (processus LGWR) et contiennent la même information. Tous les membres d’un groupe ont la même taille définie lors de la création du groupe ; un fichier de journalisation contient donc une quantité maximale d’informations. De même, le nombre de groupe est déterminé ; il n’augmente pas dynamiquement.
Lorsqu’un groupe est plein (c’est-à-dire lorsque les membres sont pleins), l’instance Oracle passe au groupe suivant et ainsi de suite jusqu’au dernier ; lorsque le dernier groupe est plein, l’instance Oracle repasse au premier. Le passage d’un groupe à un autre est appelé basculement (switch).
Lorsque l’instance Oracle revient dans le premier groupe, elle écrase les informations qui y sont stockées ; ces informations ne sont donc plus disponibles en cas de besoin, par exemple pour une restauration de média. Afin de garantir cette possibilité d’effectuer des restaurations complètes, il faut activer le mécanisme d’archivage (chapitre Sauvegarde et récupération)...