Undo-ProtokollVor Beginn einer Datenbanktransaktion werden die zu ändernden Datensätze im Undo-Protokoll gespeichert. Wenn die Transaktion zurückgesetzt wird oder die Datenbank abstürzt, können mit dem Undo-Protokoll die Auswirkungen der nicht festgeschriebenen Transaktion auf die Datenbank rückgängig gemacht werden. Erstellung und Vernichtung von Undo-Logs Das Undo-Log wird vor dem Start der Transaktion generiert. Wenn die Transaktion festgeschrieben wird, wird das Undo-Log nicht sofort gelöscht. InnoDB fügt das der Transaktion entsprechende Undo-Log in die Löschliste ein, die dann vom Hintergrund-Bereinigungsthread wiederverwendet wird. Undo-Log-SpeicherungDas Undo-Protokoll wird in Segmenten verwaltet und aufgezeichnet. Die InnoDB-Datendatei enthält ein Rollback-Segment, das 1024 Undo-Log-Segmente enthält. Die Speicherung des Undo-Protokolls kann durch den folgenden Parametersatz gesteuert werden. Variablen wie „%innodb_undo%“ anzeigen; Undo-Log-Funktion Implementieren der TransaktionsatomaritätUndo Log ist ein Produkt, das entwickelt wurde, um die Atomizität von Transaktionen zu erreichen. Wenn während der Transaktionsverarbeitung ein Fehler auftritt oder der Benutzer eine ROLLBACK-Anweisung ausführt, kann MySQL die Sicherung im Undo-Protokoll verwenden, um die Daten in den Zustand vor Beginn der Transaktion wiederherzustellen. Implementierung von Multi-Version Concurrency Control (MVCC)Undo Log wird verwendet, um die Parallelitätskontrolle mehrerer Versionen in der MySQL InnoDB-Speicher-Engine zu implementieren. Bevor eine Transaktion festgeschrieben wird, speichert das Undo-Protokoll die vorherige Version der Daten. Die Daten im Undo-Protokoll können als Snapshot der alten Version der Daten verwendet werden, um sie von anderen gleichzeitigen Transaktionen lesen zu können.
Redo-ProtokollBezieht sich auf alle Daten, die in einer Transaktion geändert wurden. Der Speicherort der letzten Datensicherung (Redo-Log) wird als Redo-Log bezeichnet. Generierung und Freigabe von Redo-Logs Während der Ausführung von Transaktionsvorgängen werden Redo-Protokolle generiert. Wenn die Transaktion festgeschrieben wird, werden die generierten Redo-Protokolle in den Protokollpuffer geschrieben, jedoch nicht sofort in die Datenträgerdatei, wenn die Transaktion festgeschrieben wird. So funktioniert Redo LogRedo Log ist ein Produkt, das zur Erreichung der Transaktionspersistenz entwickelt wurde. Um zu verhindern, dass zum Zeitpunkt eines Fehlers fehlerhafte Seiten vorhanden sind, die nicht in die IBD-Datei der Tabelle geschrieben wurden, wiederholen Sie die Daten beim Neustart des MySQL-Dienstes basierend auf dem Redo-Protokoll. Dadurch wird die Funktion zum Beibehalten der Transaktionsdaten erreicht, die nicht auf die Festplatte geschrieben wurden. Mechanismus zum Schreiben von Redo-LogsDer Inhalt der Redo-Log-Datei wird in einer sequentiellen Schleife in die Datei geschrieben. Wenn diese voll ist, wird zur ersten Datei zurückgekehrt und diese überschrieben. write pos ist die Position des aktuellen Datensatzes. Beim Schreiben bewegt es sich rückwärts. Nach dem Schreiben bis zum Ende der letzten Datei kehrt es zum Anfang der Datei 0 zurück. Redo Log-bezogene KonfigurationsparameterJede InnoDB-Speicher-Engine verfügt über mindestens eine Redo-Log-Dateigruppe und jede Dateigruppe verfügt über mindestens zwei Redo-Log-Dateien. Die Standarddateien sind ib_logfile0 und ib_logfile1. Sie können die Redo-Log-Speicherung über die folgenden Parameter steuern Variablen wie „%innodb_log%“ anzeigen; Die Strategie zum Speichern des Redo-Puffers im Redo-Log kann über Innodb_flush_log_at_trx_commit festgelegt werden.
Es wird im Allgemeinen empfohlen, den Wert 2 auszuwählen, da bei einem MySQL-Absturz keine Daten verloren gehen und nur bei einem Absturz des gesamten Servers 1 Sekunde an Transaktionsdaten verloren geht. Oben finden Sie eine detaillierte Zusammenfassung des MySQL Undo Log und Redo Log. Weitere Informationen zum MySQL Undo Log und Redo Log finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: DOCTYPE Dokumenttypdeklaration (unbedingt lesenswert für Webseiten-Liebhaber)
>>: Docker verwendet Root, um in den Container zu gelangen
Erstellen Sie docker-compose.yml und füllen Sie d...
ins und del wurden in HTML 4.0 eingeführt, um Auto...
Vorwort: Die MySQL-Master-Slave-Architektur dürft...
1. Technische Punkte Vite-Version vue3 ts Integri...
Wichtige Daten müssen gesichert werden, und zwar ...
Das „.zip“-Format wird zum Komprimieren von Datei...
Umgebungsvorbereitung 1. Umweltkonstruktion React...
Die SQL-Optimierung von Datenbanken ist ein häufi...
Grundlegendes dreispaltiges Layout .Container{ An...
Wann wird die Tabelle eingesetzt? Tabellen werden...
Vorwort Standardmäßig initialisiert MySQL einen g...
Inhaltsverzeichnis 1. Hintergrund 2. Zusammengese...
Inhaltsverzeichnis 1. Ursprüngliche Nachfrage 2. ...
1. Führen Sie zuerst die Select-Anweisung aus, um...
Ab Elasticsearch 6.8 dürfen kostenlose Benutzer d...