4. Les composants de l'architecture d'un système de bases de données
143
d'autres types d'incidents. Par exemple, une unité de stockage externe
qui tombe en panne peut rendre illisible les données dans une base.
Restauration d’une
base de données
Le concept de reprise (recovery, en anglais) vise à restaurer une
base de données dans un état cohérent après une panne. Pour y
parvenir, il est crucial de savoir où s'est produite l'erreur. Est-elle
causée par un programme d'application, par le logiciel de base de
données ou par un matériel défectueux ? En cas de violation des
contraintes d'intégrité ou de «crash» d'un programme d'application, il
suffit de défaire une, voire plusieurs transactions, et de les refaire
ensuite après avoir apporté des corrections nécessaires. En cas
d'incident grave, la corruption des données peut être telle que nous
devons retrouver, dans un cas extrême, une copie de sauvegarde et, à
partir de là, reconstruire la base de données en rejouant les
transactions depuis la dernière sauvegarde.
Mécanisme de
journalisation
Pour défaire les transactions, le système de bases de données
s'appuie sur un certain nombre d'informations de reprise. En principe,
avant toute modification d'un objet, le système en crée une copie dite
image avant (before image, en anglais) dans un journal de
transaction
3 (log file, en anglais). Outre la sauvegarde des anciennes
valeurs de l'objet, le système génère dans le journal des marques qui
signalent le début et la fin d'une transaction.
Pose des points de
reprise
Pour que le journal de transaction puisse être exploité
efficacement lors de la reprise après panne, nous définissons des
points de reprise (checkpoints, en anglais), appelés aussi points de
sauvegarde, ou encore points de cohérence, soit par le biais
d’instructions appropriées dans un programme d'application, soit en
les associant à des événements particuliers dans le système. Un point
de reprise du système comporte une liste des transactions actives
jusqu'à ce moment précis. À chaque redémarrage (restart, en anglais),
le système de bases de données se fonde sur le dernier point de reprise
pour défaire les transactions inachevées (en exécutant par exemple la
commande SQL ROLLBACK).
3 Dans le présent contexte, ce journal ne doit pas être confondu avec un autre
journal défini dans la section 4.3.
143
d'autres types d'incidents. Par exemple, une unité de stockage externe
qui tombe en panne peut rendre illisible les données dans une base.
Restauration d’une
base de données
Le concept de reprise (recovery, en anglais) vise à restaurer une
base de données dans un état cohérent après une panne. Pour y
parvenir, il est crucial de savoir où s'est produite l'erreur. Est-elle
causée par un programme d'application, par le logiciel de base de
données ou par un matériel défectueux ? En cas de violation des
contraintes d'intégrité ou de «crash» d'un programme d'application, il
suffit de défaire une, voire plusieurs transactions, et de les refaire
ensuite après avoir apporté des corrections nécessaires. En cas
d'incident grave, la corruption des données peut être telle que nous
devons retrouver, dans un cas extrême, une copie de sauvegarde et, à
partir de là, reconstruire la base de données en rejouant les
transactions depuis la dernière sauvegarde.
Mécanisme de
journalisation
Pour défaire les transactions, le système de bases de données
s'appuie sur un certain nombre d'informations de reprise. En principe,
avant toute modification d'un objet, le système en crée une copie dite
image avant (before image, en anglais) dans un journal de
transaction
3 (log file, en anglais). Outre la sauvegarde des anciennes
valeurs de l'objet, le système génère dans le journal des marques qui
signalent le début et la fin d'une transaction.
Pose des points de
reprise
Pour que le journal de transaction puisse être exploité
efficacement lors de la reprise après panne, nous définissons des
points de reprise (checkpoints, en anglais), appelés aussi points de
sauvegarde, ou encore points de cohérence, soit par le biais
d’instructions appropriées dans un programme d'application, soit en
les associant à des événements particuliers dans le système. Un point
de reprise du système comporte une liste des transactions actives
jusqu'à ce moment précis. À chaque redémarrage (restart, en anglais),
le système de bases de données se fonde sur le dernier point de reprise
pour défaire les transactions inachevées (en exécutant par exemple la
commande SQL ROLLBACK).
3 Dans le présent contexte, ce journal ne doit pas être confondu avec un autre
journal défini dans la section 4.3.
