Mysql FLUSH LOGS en servidor vivo con replicación
-
30-09-2020 - |
Pregunta
Necesito ejecutar la consulta lenta y el registro de consultas no indexadas durante algún tiempo en una base de datos de producción en vivo con replicación.Cambiar el valor de constante GLOBAL suena como una buena solución.Este artículo también proporciona una buena lectura sobre eso.
El problema es que necesito ejecutar FLUSH LOGS;
en el maestro/esclavo.Y no estoy seguro de cómo afectará eso a la replicación.¿Alguien puede decirme el impacto de ejecutar FLUSH LOGS;
en el maestro en vivo y en el esclavo en vivo?
Gracias
Solución
FLUSH LOGS;
es seguro de hacer en cualquier momento.Girará los registros de replicación;esto es inofensivo;la replicación sabe cómo pasar al siguiente registro.El binlog se rota automáticamente cuando excede max_binlog_size
.
Antes de 5.6, FLUSH LOGS
no rotaba el registro lento.Ver http://dev.mysql.com/doc/refman/5.6/en/flush.html o la página para su versión.
nunca he hecho reset master
;yo no lo incluiriaUso expire_logs_days
para purgar binlogs automáticamente.(Si un esclavo ha estado desconectado durante tantos días y no lo noto, me merezco la molestia).
prefiero log_queries_not_using_indexes = OFF
;de lo contrario, abarrota el registro lento.(Una tabla pequeña sin un índice a menudo no es un problema real).
Otros consejos
usando flush logs;
, generalmente reset master
guardará todos los cambios no guardados en los registros y eliminará los antiguos.
hay una solución para ello:
orteSi está utilizando la replicación, no debe eliminar archivos de registro binarios antiguos en el maestro hasta que esté seguro de que ningún esclavo aún necesita usarlos.Por ejemplo, si sus esclavos nunca se retrasan más de tres días , una vez al día puede ejecutar mysqladmin flush-logs en el maestro y luego eliminar los registros que tengan más de tres días.Puede eliminar los archivos manualmente, pero es preferible usar PURGE BINARY LOGS, que también actualiza de forma segura el archivo de índice de registro binario por usted (y que puede tomar un argumento de fecha).Consulte la Sección 13.4.1.1, “Sintaxis de PURGE BINARY LOGS”.
Puede mostrar el contenido de los archivos de registro binarios con la utilidad mysqlbinlog .Esto puede ser útil cuando desea reprocesar declaraciones en el registro para una operación de recuperación.Por ejemplo, puede actualizar un servidor MySQL desde el registro binario de la siguiente manera:
orte
shell> mysqlbinlog log_file | mysql -h server_name
citado de http://dev.mysql.com/doc/refman/5.0/en/binary-log.html