Replicación maestro-esclavo de MySQL (8) -configuración de replicación semisincrónica

Replicación maestro-esclavo de MySQL (8) -configuración de replicación semisincrónica

La replicación asincrónica de MySQL puede proporcionar el mejor rendimiento. La base de datos maestra envía el registro binlog a la base de datos esclava. Esta acción finalizó y no verifica si la base de datos esclava lo ha recibido. También significa que cuando falla el servidor principal o el servidor esclavo, es posible que el servidor esclavo no reciba el registro binlog enviado por el servidor maestro, lo que hará que los datos del servidor maestro y el servidor esclavo sean inconsistentes, e incluso provocará que los datos durante la recuperación. La pérdida.

El modo de replicación semisincrónica se introdujo desde MySQL 5.5. Este modo puede garantizar que el servidor esclavo reciba el archivo de registro binlog enviado por el servidor maestro y lo escriba en su propio registro de retransmisión, y luego envíe una retroalimentación al servidor maestro, indicándole al servidor maestro que la recepción está completa, y luego el hilo del servicio principal Regrese a la sesión actual para informar que la operación se completó.

El proceso de configuración de la replicación semisincrónica es el siguiente:

1. Entorno operativo

Sistema operativo: CentOS Linux versión 7.8.2003 (Core)
Versión de MySQL: MySQL5.7
IP del servidor primario: 192.168.1.11
IP del servidor esclavo: 192.168.1.12

En segundo lugar, la configuración del servidor principal

1. Instale el complemento semisincrónico

mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
Query OK, 0 rows affected (0.04 sec)

2. Modifique el archivo de configuración

log-bin = mysql-master-binlog
log-slave-updates = 1
binlog_format = row

server-id = 1
server_id_bits = 33
rpl_semi_sync_master_enabled = 1  # 表示在master上开启半同步复制模式
rpl_semi_sync_master_timeout = 1000  # 表示主库在某次事务中的等待时间为10000毫秒

3. Ver información de configuración semisincrónica

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
1 row in set (0.00 sec)

4. Crea una cuenta de copia

mysql> grant replication slave on *.* to 'repl'@'192.168.1.%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

En tercer lugar, la configuración del servidor esclavo.

1. Instale el complemento semisincrónico

mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
Query OK, 0 rows affected (0.03 sec)

2. Modifique el archivo de configuración

log-bin = mysql-master-binlog
log-slave-updates = 1
binlog_format = row  

server-id = 2
server_id_bits = 32
rpl_semi_sync_slave_enabled = 1

3. Ver información de configuración semisincrónica

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';
+---------------------+---------------+
| PLUGIN_NAME         | PLUGIN_STATUS |
+---------------------+---------------+
| rpl_semi_sync_slave | ACTIVE        |
+---------------------+---------------+
1 row in set (0.03 sec)

4. Establecer opciones de copia

change master to
master_host='192.168.1.11',
master_user='repl',
master_password='123456',
MASTER_PORT=3306,
MASTER_AUTO_POSITION = 1;

5. Inicie el esclavo y verifique el estado de la biblioteca esclava

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.11
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-master-binlog.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-relay-log.000003
                Relay_Log_Pos: 387
        Relay_Master_Log_File: mysql-master-binlog.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/107521694
Recomendado
Clasificación