Percona XtraBackup est une fonction de récupération après crash basée sur InnoDB. Copie les fichiers de données InnoDB, ce qui entraîne des données incohérentes en interne ; mais il effectue ensuite une récupération sur incident sur les fichiers, ce qui en fait à nouveau une base de données cohérente et utilisable.
Cela est dû au fait que InnoDB maintient un journal redo, également appelé journal des transactions. Celui-ci contient un enregistrement de chaque modification apportée aux données InnoDB. Lorsque InnoDB démarre, il vérifie les fichiers de données et le journal des transactions et effectue deux étapes. Il applique les entrées du journal des transactions validées aux fichiers de données et effectue des opérations d'annulation sur toutes les transactions qui ont modifié les données mais n'ont pas été validées.
Percona XtraBackup commence par enregistrer le numéro de séquence du journal (LSN), puis copie les fichiers de données. Cela prend peu de temps, donc si les fichiers changent, ils reflètent l'état de la base de données à différents moments. Dans le même temps, Percona XtraBackup exécute un processus en arrière-plan qui surveille les fichiers journaux des transactions et en copie les modifications. Percona XtraBackup doit le faire en permanence car le journal des transactions est écrit de manière circulaire et peut être réutilisé après un certain temps. Percona XtraBackupLa journalisation des transactions est requise pour chaque modification depuis le début de l'exécution du fichier de données.
Percona XtraBackup utilisera Backup Lock comme alternative légère. Cette fonctionnalité est disponible dans Percona Server 5.6+. Percona XtraBackup l'utilise pour copier automatiquement les données non-InnoDB afin d'éviter de bloquer les requêtes DML qui modifient les tables InnoDB. Lorsque le serveur prend en charge les verrous de sauvegarde, xtrabackup copiera d'abord les données InnoDB, exécutera et copiera les tables MyISAM et les fichiers .frm. Une fois terminée, la sauvegarde des fichiers commencera. Il sauvegardera .frm, .MRG, .MYD, .MYI, .TRG, FLUSH TABLES AVEC LIRE LOCKLOCK TABLES FOR BACKUP.par
REMARQUE
Le verrouillage est uniquement pour MyISAM et d'autres tables non InnoDB, sauvegardées uniquement après que Percona XtraBackup ait terminé toutes les données et journaux InnoDB/XtraDB. Percona XtraBackup utilisera Backup Lock comme alternative légère. Cette fonctionnalité est disponible dans Percona Server 5.6+. Percona XtraBackup l'utilise pour copier automatiquement les données non-InnoDB afin d'éviter de bloquer les requêtes DML qui modifient les tables InnoDB. FLUSH TABLES AVEC READ LOCK
Après cela, xtrabackup bloquera toutes les opérations susceptibles de modifier l'emplacement du journal binaire ou le rapport. Ensuite, xtrabackup finira de copier les fichiers journaux REDO et d'obtenir les coordonnées du journal binaire. Une fois cette opération terminée, xtrabackup débloquera le journal binaire et les tables. LOCK BINLOG FOR BACKUPExec_Master_Log_PosExec_Gtid_SetSHOW MASTER/SLAVE STATUS
Enfin, la position du journal binaire sera imprimée sur STDERR et xtrabackup quittera en renvoyant 0 si tout est OK.
Il est à noter que le xtrabackup de STDERR n'est écrit dans aucun fichier. Il faut le rediriger vers un fichier, par exemple. xtrabackup OPTIONS2> backupout.log
Il créera également les fichiers suivants dans le répertoire sauvegardé.
Pendant la phase de préparation, Percona XtraBackup effectue une récupération après incident sur les fichiers de données répliqués à l'aide des fichiers journaux de transactions répliqués. Une fois cela fait, la base de données est prête à être restaurée et utilisée.
Les tables MyISAM et InnoDB sauvegardées finiront par être cohérentes entre elles car après le processus de préparation (restauration), les données de InnoDB est restauré jusqu'au point où la sauvegarde se termine sans revenir à ce point pour commencer. Ce moment correspond à la position prise, donc les données MyISAM et les données InnoDB préparées sont synchronisées. TABLES FLUSH AVEC VERROU DE LECTURE
En bref, ces outils vous permettent d'effectuer des opérations telles que des sauvegardes en continu et incrémentielles en copiant des fichiers de données, en copiant des fichiers journaux et en appliquant des journaux à diverses combinaisons de données.
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!