Unterschied zwischen Transaktionslog und Redo-Log in MySQL

14

Ich habe über MySQL gelesen. Meiner Meinung nach sind sich zwei Protokolltypen sehr ähnlich. MySQL speichert, wie und wann Daten im Protokoll geändert werden. Informationen werden zur Wiederherstellung von MySQL verwendet. Ich verwechsle die Funktion von zwei Protokolltypen.

Luke Nguyen
quelle

Antworten:

18

Das REDO-Protokoll ist die Oracle-Terminologie, das Transaktionsprotokoll die InnoDB-Terminologie. Jetzt, da alle Oracle-Ingenieure sind, verwenden die Leute beide, um in MySQL auf dasselbe zu verweisen .

Das Transaktionslog ist standardmäßig - es kann geändert werden - die beiden Dateien, die sich in $ DATADIR befinden, heißen ib_logfile0und ib_logfile1. Es bietet die gleichen Funktionen wie das REDO-Protokoll in anderen Datenbanken - speichert Schreibvorgänge auf sichere Weise und stellt sie im Falle eines Absturzes wieder her, obwohl sich einige Details in der Implementierung in der Funktionalität von anderen RDMS unterscheiden. Es ist die Hauptkomponente für InnoDB, eine Transaktions-Engine zu sein.

Verwechseln Sie das Transaktionslog nicht mit den Binärlogs in MySQL . Das binlog befindet sich standardmäßig auf dem $ DATADIR und ist *hostname*-bin.indexund mehrere *hostname*-bin.00001, usw. Es ist besonders verwirrend für Benutzer, die aus anderen Datenbanken stammen, da es für andere Zwecke verwendet wird, für die andere Datenbanken das REDO-Protokoll verwenden: Replikation und Zeitpunkt Wiederherstellung. Der Hauptunterschied besteht darin, dass das Transaktionslog nur InnoDB enthält, das Binärlog (meistens) transaktionsunabhängig ist, wie es für alle Speicher-Engines gilt, ob transaktionell oder nicht. MyISAM schreibt (falls aktiviert) in das Binärlog. InnoDB schreibt in das Transaktionsprotokoll und das Binärprotokoll.

Weitere Informationen zum Handbuch: REDO-Protokoll , Binärprotokoll .

jynus
quelle
-2

In SQL Server werden in den TLog-Dateien Informationen zum Rückgängigmachen und Wiederherstellen gespeichert. In MYSQL und Oracle speichert das TLog / Redo-Protokoll jedoch nur Redo-Informationen.

Die binäre Protokollierung in MySQL ist eine Möglichkeit zur Wiederherstellung zu einem bestimmten Zeitpunkt. Das Aktivieren der binären Protokollierung entspricht einem vollständigen Wiederherstellungsmodell in SQL Server.

Mersh
quelle
1
Sie sollten wahrscheinlich klarstellen, dass Oracle das Rückgängigmachen immer noch speichert, wenn auch separat.
Philᵀᴹ