Fonctionnement de la consignation des transactions

Voici un exemple de consignation des transactions du point de vue de l'administrateur et des employés.

L'administrateur active la consignation des transactions pour toutes les bases présentes sur les serveurs. L'administrateur choisit le style de consignation Archivage pour qu'il reste de la place pour les journaux de transactions ; il utilise un périphérique miroir distinct pour un stockage sûr et rapide des journaux de transaction ; il installe un utilitaire de sauvegarde pour restaurer les bases après des pannes de support ou en cas de bases endommagées.

L'administrateur sauvegarde les journaux de transactions tous les jours. Cette procédure prend peu de temps car l'administrateur ne sauvegarde que les modifications ; il n'effectue pas une sauvegarde complète de toutes les bases sur le serveur.

Lorsque le serveur se bloque, il s'arrête temporairement de fonctionner. Lorsque l'administrateur redémarre le serveur, toutes les modifications enregistrées dans les journaux de transactions sont effectuées sur les bases. Le serveur reprend alors rapidement son fonctionnement normal.

Quelques jours plus tard, une panne de support intervient. L'administrateur restaure les bases de données endommagées à partir de la sauvegarde hebdomadaire la plus récente et applique les modifications.

Les employés qui utilisent les bases ne remarquent aucune différence dans leur façon de travailler, si ce n'est que les serveurs fonctionnent mieux et les pannes sont moins fréquentes.

Application des modifications à la base de données

La consignation des transactions permet de consigner toutes les transactions de la base de données dans le fichier journal, sans attendre que la transaction ne soit enregistrée sur le disque. Une fois consignées dans le fichier journal, les modifications sont considérées comme ayant réussi. L'écriture physique peut se produire dès que le serveur est moins occupé ou à des intervalles réguliers. Les modifications sont écrites vers le disque en envoi groupé.

Les bases sont mises en mémoire cache pendant leur ouverture. Les écritures vers la base sont effectuées vers la copie en mémoire de la base. Elles sont ensuite immédiatement envoyées vers les journaux de transactions. Ensuite, la version mise en mémoire cache de la base est envoyée vers le disque et les bases sont mises à jour. Dans la mesure où le journal de transaction est séquentiel, il n'y a pas de délai de recherche et seules les informations indispensables sont écrites dans les journaux pour reproduire l'opération (ou l'annuler, si nécessaire). Dans certains cas, les journaux contiennent moins d'informations que celles que la base écrit sur le disque.

Si la base n'est pas encore totalement écrite sur le disque lorsque vous l'ouvrez, la base ouverte correspondra à la version enregistrée dans la mémoire cache. Si le serveur se bloque avant que la version du disque ne soit mise à jour avec les modifications, le redémarrage du serveur applique les journaux à la base de données pendant le redémarrage.