¿Diferencia entre la replicación basada en filas y en la declaración en MySQL?


12

¿Cuál es la diferencia real entre la replicación basada en filas y en la declaración? De hecho, estoy mirando en términos del efecto de la replicación en el esclavo.

Si estoy usando una replicación basada en filas, ¿cuál es el efecto en el esclavo y si estoy usando una declaración basada, entonces, cuál es el efecto?

Tenga también en cuenta los siguientes parámetros:

   replicate-ignore-db  and replicate-do-db 

Gracias....!

Respuestas:


15

La replicación basada en instrucciones (SBR) replicará las declaraciones SQL. Es más fácil de leer usando el programa de volcado mysqlbinlog.

La replicación basada en filas (RBR) replicará los cambios de datos reales. Los registros binarios y los registros de retransmisión crecerán mucho más rápido que SBR. Tampoco puede identificar el SQL que generó los cambios.
(Lea la información actualizada para MySQL 5.6.2. A continuación)

Aquí hay una lista más completa de pros y contras: http://www.databasejournal.com/features/mysql/article.php/3922266/Comparing-MySQL-Statement-Based-and-Row-Based-Replication.htm

MySQL permitirá ambos tipos de formatos de declaración / fila en sus registros binarios. Recomiendo declaración basada. El formato de registro binario predeterminado es MIXTO, lo cual está bien.

Como está utilizando replicate-ignore-dby replicate-do-db, confiaría en la replicación basada en declaraciones.


Actualización para MySQL 5.6.2:

Introducida en MySQL 5.6.2, la binlog_rows_query_log_eventsvariable del sistema hace que un servidor MySQL 5.6.2 o posterior escriba eventos de registro informativos, como eventos de registro de consulta de fila en su registro binario. Entonces podemos identificar el SQL que generó los cambios.

Referencia: 17.1.4.4 Opciones y variables de registro binario


¿Cuál es el modo predeterminado de replicación SBR o RBR ... ??
Abdul Manaf

1
SBR - Declaración
RolandoMySQLDBA

3
El modo predeterminado es MIXED desde 5.1.8, que utiliza principalmente la replicación basada en instrucciones, pero cambia automáticamente a RBR cuando se ejecutan consultas que no son seguras con SBR. dev.mysql.com/doc/refman/5.1/en/replication-formats.html
Aaron Brown

9

En MySQL 5.5, el formato basado en instrucciones es el predeterminado. Pero es mejor usar el formato mixto. Porque en ese caso, el registro basado en instrucciones se usa de manera predeterminada, pero cambia automáticamente al registro basado en filas en los casos donde sea necesario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.