Principio de replicación maestro-esclavo
La replicación maestro-esclavo de la base de datos MySQL se basa en el registro binario de MySQL, y el servidor esclavo que necesita sincronizarse se replica a través del registro bin. Incluye principalmente tres subprocesos (2 subprocesos de E/S, 1 subproceso SQL). Tiene una conexión inevitable con la separación de lectura y escritura de MySQL: primero, se debe implementar la replicación maestro-esclavo y la separación de lectura y escritura de datos solo se puede realizar una vez completada. Un archivo de servidor actúa como servidor maestro y acepta actualizaciones de contenido de los usuarios, mientras que uno o más servidores actúan como servidores esclavos, aceptando el contenido de registro del archivo binlog en el servidor maestro , analizando SQL y volviendo a actualizarlo en el esclavo. servidor . Haga que los datos de los servidores maestro y esclavo sean consistentes.
En pocas palabras, después de que las dos máquinas A y B son maestro-esclavo, los datos se escriben en A , y la otra máquina B también escribirá datos para lograr los pasos de replicación maestro-esclavo de sincronización de datos en tiempo real.
1. Cuando el nodo maestro realiza operaciones de inserción, actualización y eliminación, se escribirá en el binlog en orden.
2.salve está conectado a la biblioteca principal maestra desde la biblioteca.
3. Cuando el binlog del nodo maestro cambia, el hilo de volcado de binlog notificará a todos los nodos esclavos y enviará el contenido del binlog correspondiente a los nodos esclavos.
4. Después de que el subproceso de E/S recibe el contenido del binlog, escribe el contenido en el registro de retransmisión local.
5. El subproceso SQL lee el registro de retransmisión escrito por el subproceso de E/S y realiza las operaciones correspondientes en la base de datos esclava de acuerdo con el contenido del registro de retransmisión.
Configuración de la biblioteca principal
1. server_id establece y habilita los parámetros de binlog
[raíz@localhost ~]# vim /etc/my.cnf
ID_servidor=1
log_bin=mysql_bin
2. Reinicie el servicio mysql.
[root@localhost ~]# systemctl reiniciar mysqld
3. Inicie sesión como usuario autorizado de MySQL.
mysql> otorgar esclavo de replicación en *.* al ide 'rep1'@'192.168.244.%'
Consulta correcta, 0 filas afectadas, 1 advertencia (0,00 seg)
ver información
mysql> mysql> mostrar estado maestro;
Configurar desde la biblioteca
1. Establezca el valor server_id y reinicie el servicio mysql.
[raíz@localhost ~]# vim /etc/my.cnf
ID_servidor=2
[root@localhost ~]# systemctl reiniciar mysqld
2. Configurar la sincronización de la biblioteca maestro-esclavo
mysql> cambiar maestro a
MASTER_HOST='192.168.244.146',
PUERTO_MAESTRO=3306,
MASTER_USER='rep1',
MASTER_PASSWORD='SombreroRojo@123',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154;
3. Inicie el interruptor de sincronización de la biblioteca esclava.
mysql> iniciar esclavo;
Consulta correcta, 0 filas afectadas (0,00 s)
comprobar estado
mysql> mostrar estado de esclavo;