Diferencia entre el registro de transacciones y el registro de rehacer en MySQL

14

He leído sobre MySQL. En mi opinión, veo dos tipos de registro como muy similares. MySQL guarda cómo y cuándo se modifican los datos en el registro. La información se usa para la recuperación de MySQL. Estoy confundiendo la función de dos tipos de registro.

Luke Nguyen
fuente

Respuestas:

18

El registro de REDO es la terminología de Oracle, el registro de transacciones es la terminología de InnoDB. Ahora que todos son ingenieros de Oracle, la gente usa ambos para referirse a lo mismo en MySQL .

El registro de transacciones es, por defecto, se puede cambiar, los dos archivos ubicados en $ DATADIR llamados ib_logfile0y ib_logfile1. Sirve las mismas funciones que el registro REDO en otras bases de datos: almacena escrituras de forma segura y se recupera en caso de bloqueo, aunque hay algunos detalles en la implementación que difieren en la funcionalidad de otros RDMS. Es el componente principal para que InnoDB sea un motor transaccional.

No confunda el registro de transacciones con los registros binarios en MySQL . El binlog, por defecto, está en $ DATADIR y es *hostname*-bin.indexy varios *hostname*-bin.00001, etc. Es particularmente confuso para las personas que provienen de otras bases de datos, porque se usa para otras cosas para las que otras bases de datos usan el registro REDO: replicación y punto en el tiempo recuperación. La principal diferencia es que el registro de transacciones es solo de InnoDB, el registro binario es (principalmente) independiente de la transacción, como lo es para todos los motores de almacenamiento, transaccionales o no. MyISAM escribirá (si está habilitado) en el registro binario. InnoDB escribirá en el registro de transacciones y el registro binario.

Más información sobre el manual: registro REDO , registro binario .

jynus
fuente
-2

En SQL Server, los archivos TLog almacenan información de deshacer y rehacer. Pero en MYSQL y Oracle, el Registro TLog / Redo almacena solo información de rehacer.

El registro binario en MySQL es una forma de tener un punto de recuperación en el tiempo. Habilitar el registro binario es equivalente a tener un modelo de recuperación completa en SQL Server.

Mersh
fuente
1
Probablemente debería dejar en claro que Oracle todavía almacena deshacer, aunque por separado.
Philᵀᴹ