InnoDB
utilise un mécanisme de contrôle
appelé points de contrôle flou. InnoDB
va
écrire des blocs de données modifiées depuis un buffer vers
le disque par petits paquets : il n'y a pas besoin de tout
écrire en une seule fois, ce qui en général, conduit à
l'arrêt du traitement des autres instructions pour quelques
instants.
Durant une restauration de base, InnoDB
recherche un point de contrôle écrit dans les fichiers de log.
Il sait que toutes les modifications de la base placées avant
ce point de contrôle sont aussi présentes sur le disque de la
base. Puis, InnoDB
analyse le fichier de log,
et applique les modifications qui ont eu lieu depuis le point de
contrôle.
InnoDB
écrit dans les fichiers de log en
mode circulaire. Toutes les modifications validées qui font que
le buffer de MySQL est différent de la version sur le disque
doivent être disponibles dans les fichiers de log, au cas où
InnoDB
aurait besoin pour une restauration.
Cela signifie que lorsque InnoDB
commence à
réutiliser le fichier d'historique, il doit commencer par
s'assurer que le disque a re¸u les modifications qui sont dans
le buffer. En d'autres termes, InnoDB
doit
placer un point de contrôle, et souvent, cela se traduit par
l'écriture de données du buffer sur le disque.
Ceci explique pourquoi utiliser de grands fichiers de log peut éviter des accès disques pour les points de contrôle. Il est recommandé d'utiliser une taille de fichier d'historique aussi grande que le buffer, voire même plus grande. L'inconvénient des grands fichiers est que la restauration dure alors plus longtemps, puisqu'il y a plus de modifications à appliquer.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.