Cuando determine que no hay un error de usuario involucrado, y la replicación todavía no funciona o es inestable, es el momento de enviarnos un reporte de bug. Necesitamos obtener toda la infomación posible que nos pueda proporcionar. Por favor dedique algo de tiempo y esfuerzo para preparar un buen reporte de bug.
Si tiene un caso de test repetible que demuestra el bug, por favor introdúzcalo en nuestra base de datos de bugs en http://bugs.mysql.com/. Si tiene un problema “fantasma” (uno que no pueda duplicar a voluntad), use el siguiente procedimiento:
Verifique que no hay ningún error de usuario involucrado. Por ejemplo, si actualiza el esclavo fuera de un flujo esclavo, los datos se desincronizan, y puede tener violaciones de claves únicas en las actualizaciones. En este caso, el flujo esclavo para y espera a que limpie las tablas manualmente para sincronizar. Este no es un problema de replicación. Es un problema de interferencias externas que provocan problemas de replicación.
Ejecute el esclavo con las opciones
--log-slave-updates
y
--log-bin
. Estas opciones provocan que el
esclavo loguee las actualizaciones que recibe del maestro en
sus propios logs binarios.
Guarde toda evidencia antes de resetear el estado de replicación. Si no tenemos información o sólo parcial, es difícil o imposible para nosotros encontrar el problema. la evidencia que debe recolectar es:
Todos los logs binarios del maestro
Todos los logs binarios del esclavo
La salida de SHOW MASTER STATUS
del
maestro cuando descubrió el problema
La salida de SHOW SLAVE STATUS
del
maestro cuando descubrió el problema
Logs de error del maestro y esclavo
Use mysqlbinlog para examinar los logs binarios. Lo siguiente debería ser útil para encontrar la consulta problemática, por ejemplo:
shell> mysqlbinlog -j pos_from_slave_status \
/path/to/log_from_slave_status
| head
Una vez que ha recolectado la evidencia del problema, trate de isolarlo como un caso de test separado. Luego introduzca el problema en nuestra base de datos de bugs en http://bugs.mysql.com/ que es tanta información como sea posible.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.