¿Hay alguna manera de omitir una tabla específica en los registros binarios?
Tengo registros binarios configurados como mi estrategia de copia de seguridad incremental entre las copias de seguridad nocturnas. Pero tenemos una gran tabla de referencia que vamos a actualizar todas las noches de un proceso por lotes (tabla de 70 GB). Esta tabla es de solo lectura y se actualiza todas las noches usando mysqlimport
.
Durante el proceso de actualización de esta tabla solo de referencia, los registros binarios están causando un retraso bastante grave (especialmente cuando hago una actualización completa de 70 GB). Tiene que hacer 70GB dos veces básicamente. qué asco.
La tabla de referencia está actualmente usando MyISAM (bloqueé InnoDB tratando de cargarlo, así que probé MyISAM).
Respuestas:
No hay una opción mysql para ignorar una tabla en el registro binario.
Si pudiera mover la tabla a una base de datos separada, podría usar la opción binlog-ignore-db , pero esto tiene sus inconvenientes . Debe comprender cómo MySQL evalúa las reglas de replicación .
Si puede escribir una secuencia de comandos de contenedor para cargar los datos en lugar de mysqlimport (la página de manual dice que es una interfaz de línea de comando para CARGAR DATOS DE FICHEROS), y el usuario con el que está importando los datos puede tener el privilegio SUPER, puede usar la variable de sesión sql_log_bin me gusta:
Esto deshabilitará el registro binario para la sesión actual, cargará los datos y habilitará nuevamente el registro binario.
fuente
puedes usar
--replicate-ignore-table=db_name.tbl_name
Consulte http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-ignore-table para obtener más detalles.
fuente