La solución para los datos maestros y esclavos inconsistentes de la base de datos

Maestro

Comprueba si hay demasiados procesos de sueño.

show processlist;

Ver estado del maestro:

show master status;



esclavo

Ver el estado de:

show slave status\G

Slave_IO_Running: Sí 
Slave_SQL_Running: No 

Se puede ver que el esclavo no está sincronizado.
Solucion


Método 1: después de ignorar el error, continúe con la sincronización. 
Este método es adecuado para situaciones en las que hay poca diferencia entre los datos de la base de datos maestra y esclava, o es posible que los datos no estén completamente unificados y la
sincronización se detenga si los requisitos de datos no son estrictos  :

stop slave; 

Indica que se salta un error de paso, el siguiente número es variable:

set global sql_slave_skip_counter =1;

Iniciar sincronización:

start slave;

Mire el estado nuevamente:

Slave_IO_Running: Yes 
Slave_SQL_Running: Yes

Bien, ahora el estado de sincronización maestro-esclavo es normal. .

Método 2: Re-maestro y esclavo, sincronización completa. 
Este método es adecuado para situaciones en las que los datos en las bibliotecas maestra y esclava son bastante diferentes, o se requiere que los datos estén completamente unificados. Los 
pasos de la solución son los siguientes: 
1. Ingrese primero a la biblioteca maestra, bloquee la tabla y evite que se escriban datos:
bloquear tabla : 

mysql> flush tables with read lock; 

Nota: Este lugar está bloqueado como de solo lectura y la declaración no distingue entre mayúsculas y minúsculas 
. 2. Copia de seguridad de datos:
# Realice una copia de seguridad de los datos en el archivo mysql.bak.sql 

mysqldump -uroot -p -hlocalhost > mysql.bak.sql

Una cosa a tener en cuenta aquí: las copias de seguridad de la base de datos deben realizarse con regularidad. Se pueden usar scripts de Shell o de Python, lo cual es más conveniente para garantizar que los datos sean infalibles 
. 3. Ver el estado del maestro:

show master status;

4. Transfiera el archivo de respaldo de mysql a la máquina esclava para la recuperación de datos, usando el comando scp:

scp mysql.bak.sql [email protected]:/tmp/

5. Detener el estado de la biblioteca 

stop slave;

6. Luego ejecute el comando mysql de la biblioteca para importar la copia de seguridad de los datos. 

mysql> source /tmp/mysql.bak.sql

7. Configure la sincronización de la biblioteca esclava, preste atención al punto de sincronización allí, que es el | Archivo | Posición en la información de estado del maestro de la demostración de la biblioteca maestra 

change master to master_host = '192.168.128.100', master_user = 'root', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260; 

8. Reinicie la sincronización del esclavo 

stop slave;

9. Ver el estado de la sincronización 

show slave status\G

Slave_IO_Running: Sí 
Slave_SQL_Running: Sí 
OK, la sincronización está completa.

Supongo que te gusta

Origin blog.csdn.net/qq_36850813/article/details/102746932
Recomendado
Clasificación