Percona Kopiert die InnoDB-Datendateien, was zu intern inkonsistenten Daten führt, führt dann aber eine Absturzwiederherstellung für die Dateien durch und macht sie wieder zu einer konsistenten, verwendbaren Datenbank.
Dies liegt daran, dassInnoDB ein Redo-Protokoll führt, das auch als Transaktionsprotokoll bezeichnet wird. Dies enthält eine Aufzeichnung aller Änderungen an InnoDB-Daten. Wenn InnoDB startet, überprüft es die Datendateien und das Transaktionsprotokoll und führt zwei Schritte aus. Es wendet festgeschriebene Transaktionsprotokolleinträge auf die Datendateien an und führt Rückgängig-Vorgänge für alle Transaktionen durch, die die Daten geändert, aber nicht festgeschrieben haben.
Percona XtraBackup beginnt mit der Aufzeichnung der Protokollsequenznummer (LSN) und kopiert dann die Datendateien. Dies dauert nur kurze Zeit. Wenn sich die Dateien also ändern, spiegeln sie den Zustand der Datenbank zu unterschiedlichen Zeitpunkten wider. Gleichzeitig führt Percona XtraBackup einen Hintergrundprozess aus, der die Transaktionsprotokolldateien überwacht und Änderungen daraus kopiert. Percona XtraBackup muss dies ständig tun, da das Transaktionsprotokoll kreisförmig geschrieben wird und nach einer gewissen Zeit wiederverwendet werden kann. Percona XtraBackupEine Transaktionsprotokollierung ist für jede Änderung seit Beginn der Ausführung der Datendatei erforderlich.
Percona XtraBackup verwendet Backup Lock als einfache Alternative. Diese Funktion ist in Percona Server 5.6+ verfügbar. Percona Wenn der Server Sicherungssperren unterstützt, kopiert xtrabackup zunächst die InnoDB-Daten, führt die MyISAM-Tabellen und .frm-Dateien aus und kopiert sie. Sobald der Vorgang abgeschlossen ist, beginnt die Sicherung der Dateien. Es werden .frm, .MRG, .MYD, .MYI, .TRG und FLUSH TABLES MIT READ LOCKLOCK TABLES FOR BACKUP.par gesichert.HINWEISDie Sperre gilt nur für
MyISAMund andere Nicht-InnoDB-Tabellen werden erst gesichert, nachdem
Percona XtraBackupalle InnoDB/XtraDB-Daten und Protokolle abgeschlossen hat. Percona XtraBackup verwendet Backup Lock als einfache Alternative. Diese Funktion ist in Percona Server 5.6+ verfügbar. Percona FLUSH TABLES WITH READ LOCK Danach blockiert xtrabackup alle Vorgänge, die den Speicherort des Binärprotokolls oder den Bericht ändern könnten. Dann wird xtrabackup das Kopieren der REDO-Protokolldateien abschließen und die binären Protokollkoordinaten abrufen. Nachdem dies abgeschlossen ist, entsperrt xtrabackup das Binärprotokoll und die Tabellen. SPERRE BINLOG FÜR BACKUPExec_Master_Log_PosExec_Gtid_SetSHOW MASTER/SLAVE STATUSSchließlich wird die Binärprotokollposition in STDERR gedruckt und xtrabackup wird beendet und gibt 0 zurück, wenn alles in Ordnung ist. Es ist zu beachten, dass STDERRs xtrabackup in keine Datei geschrieben wird. Sie müssen es beispielsweise in eine Datei umleiten. xtrabackup OPTIONS2> backupout.log
Es werden außerdem die folgenden Dateien im gesicherten Verzeichnis erstellt. Während der Vorbereitungsphase führtPercona XtraBackup
eine Absturzwiederherstellung für replizierte Datendateien mithilfe replizierter Transaktionsprotokolldateien durch. Sobald dies erledigt ist, kann die Datenbank wiederhergestellt und verwendet werden. Die gesicherten TabellenMyISAM
undInnoDB werden schließlich miteinander konsistent sein, da nach dem Vorbereitungs- (Wiederherstellungs-)Prozess die Daten für InnoDB
wird bis zu dem Punkt fortgeschrieben, an dem die Sicherung abgeschlossen ist, ohne dass ein Rollback zu diesem Punkt erfolgt. Dieser Zeitpunkt stimmt mit der eingenommenen Position überein, sodass dieMyISAM-Daten und die vorbereiteten InnoDB-Daten synchron sind. FLUSH TABLES WITHREAD LOCKKurz gesagt, mit diesen Tools können Sie Vorgänge wie Streaming und inkrementelle Sicherungen durchführen, indem Sie Datendateien kopieren, Protokolldateien kopieren und Protokolle auf verschiedene Datenkombinationen anwenden.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in das Backup-Prinzip von xtrabackup. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!