Advertencias con pt-table-checksum Uso de replicación basada en filas y filtros de replicación

De acuerdo con la documentación, pt-table-checksum es una herramienta para realizar verificaciones de consistencia de replicación en línea al realizar consultas de suma de verificación en el maestro, lo que produce diferentes resultados en las réplicas que son inconsistentes con el maestro.

El maestro y cada esclavo insertan sumas de verificación en él percona.checksums tabla, y estos se comparan más tarde para las diferencias. Es bastante obvio que las sumas de verificación deben determinarse de forma independiente en cada nodo, por lo que estas inserciones deben replicarse como DECLARACIÓN y no como FILA.. De lo contrario, los esclavos ingresarán solo la misma suma de verificación que el maestro y no la calculadora independiente.

La herramienta solo lo necesita.
binlog_formato=DECLARACIÓN para su propia sesión. Se instala en el maestro, pero cometerá un error si aún no está configurado en cada nodo esclavo. El motivo del error es que la declaración cambió de sesión. binlog_format será No ser replicado. Así que si un esclavo tiene binlog_format=ROW entonces el propio esclavo ejecutará la suma de verificación correctamente, pero los resultados se escribirán como una fila. Cualquier esclavo de este esclavo en la cadena ingresará solo el mismo resultado. ver el error 899415.

Esto solo es un problema si tenemos una replicación encadenada, y el error puede omitirse --no-check-binlog-format así que para configuraciones de replicación simple con replicación ROW o MIXED también podemos usar la herramienta. Si no tenemos una topología de estilo esclavo encadenado, entonces no hay necesidad de preocuparse por eso.

Sin embargo, hay una advertencia que debe tener en cuenta si está utilizando filtros de replicación: cuando un esclavo no está replicando una base de datos en particular debido a binlog-ignore-db, este parámetro se comporta de manera diferente con la replicación basada en ROW (RBR) frente a la basada en STATEMENT.

Perú documentación, con RBR,

omitirá todas las actualizaciones de prueba.*. Con la replicación basada en STATEMENT, activará todas las actualizaciones posteriores
USU prueba_base_de_datos; para ser ignorado (independientemente de dónde se escribieron las actualizaciones).

pt-table-checksum funciona de la siguiente manera:

COMO cnt, COALESCE (INFERIOR (CONV (BIT_XOR (CAST (CRC32 (CONCAT_WS (‘)) use testing # ‘, `id`, CONCAT (ISNULL (` id`)))) COMO SIN FIRMAR)), 10, 16)), 0) AS crc FROM `testing`.`testing` / * tabla de suma de comprobación * / percona.checksumsDebido a

el esclavo omitirá estas declaraciones sin error, y simplemente no escribirá

.

Según la documentación:

# pt_table_checksum: 12416 10967 Obtenga la última suma de verificación en el esclavo1 --no-check-replication-filters # pt_table_checksum: 12419 10967 fragmento máximo esclavo1: undef

No recomendamos usar la herramienta con filtros de replicación en su lugar, pero sí

se especifica que debe tener en cuenta las diferencias en la forma en que los diferentes formatos binlog manejan estos filtros.

.

%

Más recursos

Puede leer más sobre pt-table-checksum en esta publicación de blog MySQL Replication Primer with pt-table-checksum and pt-table-sync

La última versión de Percona Toolkit se puede descargar desde nuestro sitio web. Todo el software de Percona es de código abierto y gratuito.

Foto de Hielo negro por Pexels

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario