Comment fonctionne la journalisation des transactions

Voici un exemple général de journalisation des transactions du point de vue de l'administrateur et du point de vue des employés.

L'administrateur active la journalisation des transactions pour toutes les bases de données sur les serveurs. L'administrateur choisit le style de journalisation archivé afin qu'il y ait suffisamment d'espace pour les journaux de transactions ; utilise un périphérique en miroir distinct pour un stockage sûr et rapide des journaux de transactions ; et installe un utilitaire de sauvegarde pour récupérer des pannes de support et de toute base de données corrompue qui en résulte.

L'administrateur sauvegarde quotidiennement les journaux de transactions. Cette procédure ne prend pas longtemps car l'administrateur sauvegarde uniquement les modifications, plutôt que d'effectuer une sauvegarde complète de toutes les bases de données sur le serveur.

Lorsque le serveur tombe en panne, il est hors service, mais pas pour longtemps. Lorsque l'administrateur redémarre le serveur, il réexécute toutes les modifications des journaux de transactions dans les bases de données. Le serveur sera bientôt de nouveau opérationnel.

Quelques jours plus tard, c'est la panne médiatique. L'administrateur restaure les bases de données corrompues à partir de la sauvegarde hebdomadaire la plus récente et rejoue les modifications.

Les employés qui utilisent les bases de données ne remarquent aucune différence dans leur façon de travailler. Ils remarqueront peut-être cependant que les serveurs sont opérationnels plus souvent et qu’il y a moins de temps d’arrêt.

How changes are made to the database

La journalisation des transactions enregistre toutes les transactions de la base de données dans le fichier journal, sans attendre que la transaction soit validée sur le disque. Une fois publiée dans le fichier journal, la modification est considérée comme réussie. Le processus d’écriture physique peut attendre que le serveur soit moins occupé ou se produire à intervalles réguliers. Les modifications sont écrites sur le disque par lots.

Les bases de données sont mises en cache en mémoire lorsqu'elles sont ouvertes. Les écritures dans la base de données se produisent sur la copie en mémoire de la base de données. Ils sont ensuite immédiatement envoyés vers les journaux de transactions. Plus tard, la version mise en cache de la base de données est publiée sur le disque, mettant à jour les bases de données. Étant donné que le journal des transactions est séquentiel, il n'y a pas de temps de recherche et seules les informations nécessaires sont écrites dans les journaux pour refaire (ou annuler si nécessaire) l'opération. Dans de nombreux cas, il s'agit de moins d'informations que ce que la base de données écrit sur le disque.

Si la base de données n’est pas encore complètement écrite sur le disque et que vous l’ouvrez, vous ouvrez la version mise en cache mémoire. Si le serveur tombe en panne avant que la version sur le disque n'ait été mise à jour avec les modifications, le redémarrage du serveur applique les journaux à la base de données lors du redémarrage.