it-swarm.com.de

Unterschied zwischen Transaktionsprotokoll und Redo-Protokoll in MySQL

Ich habe über MySQL gelesen. Meiner Meinung nach sehe ich zwei Protokolltypen als sehr ähnlich an. 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.

14
Luke Nguyen

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

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

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

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

19
jynus