Maison >base de données >tutoriel mysql >Que sont les journaux de rétablissement et d'annulation MySQL ?

Que sont les journaux de rétablissement et d'annulation MySQL ?

WBOY
WBOYavant
2023-05-30 16:07:311867parcourir

    1. Introduction au journal Redo

    Le journal Redo est un journal physique qui enregistre les modifications de page.

    1.1 Le rôle du Redo log

    • Améliorer l'efficacité d'écriture de la base de données

    • Assurer que la base de données ne perd pas de données et effectuer une récupération de données

    1.2 Le format et le type du Redo log

    Le soi-disant La méthode d'organisation REDO consiste à enregistrer le contenu REDO requis dans un fichier disque pour faciliter l'écriture, la lecture, la récupération et le nettoyage REDO efficaces. Nous divisons REDO en trois couches de haut en bas : couche REDO logique, couche REDO physique et couche fichier.

    • Couche REDO logique

    Cette couche est le véritable contenu REDO, un flux de données séquentiel se compose de plusieurs enregistrements REDO de différents types connectés à la fin, avec un sn de décalage incrémentiel unique au monde. valeur maximale de sn dans le log_sys global et augmente sn de la longueur du contenu REDO à chaque fois que des données sont écrites.

    • Couche REDO physique

    Disk est un périphérique de bloc. InnoDB utilise également le concept de Block pour lire et écrire des données. La longueur d'un Block OS_FILE_LOG_BLOCK_SIZE est égale à la taille du secteur de disque 512B. de chaque IO lu et écrit est C'est un bloc.

    • Couche de fichiers

    Enfin, REDO sera écrit dans le fichier journal REDO, et le fichier journal est écrit en boucle

    Que sont les journaux de rétablissement et dannulation MySQL ?

    2. Les opérations du thread utilisateur seront d'abord écrites dans le log buffer

    • log buffer. Les journaux dans le log buffer seront. écrit séquentiellement dans le journal logique Redolog buffer

    • log buffer

    • et sera écrit sur le disque plus tard Après avoir conservé le stockage sur le disque

    • , l'utilisateur est informé que le stockage est terminé

    3.

    Checkpoint est le point de marquage des pages sales dans le journal Redo, qui a les deux fonctions suivantes :

      Maintenir les journaux Redo pour faciliter le nettoyage
    • Réduire la charge de travail du redémarrage

    Que sont les journaux de rétablissement et dannulation MySQL ?

    Processus de récupération de la base de données :

      Lire les informations sur le point de contrôle •Lire les journaux restants à partir de la position du point de contrôle
    • Analyser le journal et créer une table de hachage en fonction du numéro d'espace et de la page_id
    • Appliquer le journal de rétablissement, le journal de rétablissement la lecture garantit l'idempotence
    • Analyser le journal binaire pour créer une liste xid
    • Scannez le segment d'annulation pour créer une liste des transactions en attente
    • Annuler les transactions qui ne sont pas dans la liste xid
    • 4. Journal d'annulation

    Le journal d'annulation est un journal logique qui enregistre les modifications incrémentielles des données, et sa fonction est de garantir l'atomicité des transactions et le contrôle de la concurrence des transactions. Réécrit : le journal d'annulation sert à garantir l'atomicité des transactions et à contrôler leur simultanéité en enregistrant les modifications incrémentielles des données, fonctionnant comme un journal logique. Il peut être utilisé pour annuler des transactions, implémenter un contrôle multi-version (MVCC) et résoudre les conflits de lecture-écriture et les lectures cohérentes.

    5. MVCC

    La signification de MVCC :

      la lecture et l'écriture ne se bloquent pas
    • réduire la probabilité de blocage ;
    • Le rôle d'UndoLog dans MVCC :

    Chaque transaction a un ID de transaction à incrément unique

      L'enregistrement de ligne de la page de données contient DB_ROW_ID, DB_TRX_ID, DB_ROLL_PTR ;
    • DB_ROLL_PTR Tous les enregistrements instantanés des lignes de données sont concaténés via une structure de liste chaînée.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer