Replicação mestre-escravo MySQL (8) -configuração de replicação semissíncrona

Replicação mestre-escravo MySQL (8) -configuração de replicação semissíncrona

A replicação assíncrona do MySQL pode fornecer o melhor desempenho. O banco de dados mestre envia o log binlog para o banco de dados escravo. Esta ação é encerrada e não verifica se o banco de dados escravo o recebeu. Isso também significa que quando o servidor principal ou o servidor escravo falha, é possível que o servidor escravo não receba o log binlog enviado pelo servidor mestre, o que fará com que os dados do servidor mestre e do servidor escravo sejam inconsistentes e até mesmo causará os dados durante a recuperação. A perda.

O modo de replicação semissíncrono foi introduzido desde o MySQL 5.5. Este modo pode garantir que o servidor escravo receba o arquivo de log binlog enviado pelo servidor mestre e o grave em seu próprio relay log e, em seguida, envie um feedback para o servidor mestre, informando ao servidor mestre que a recepção está completa e, em seguida, o thread de serviço principal Retorne à sessão atual para informar que a operação foi concluída.

O processo de configuração da replicação semissíncrona é o seguinte:

1. Ambiente operacional

Sistema operacional: CentOS Linux versão 7.8.2003 (Core)
Versão MySQL: MySQL5.7
IP do servidor primário: 192.168.1.11
IP do servidor escravo: 192.168.1.12

Em segundo lugar, a configuração do servidor principal

1. Instale o plugin semissíncrono

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

2. Modifique o arquivo de configuração

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. Visualize informações de configuração semissíncrona

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. Crie uma conta de cópia

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)

Terceiro, a configuração do servidor escravo

1. Instale o plugin semissíncrono

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

2. Modifique o arquivo de configuração

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. Visualize informações de configuração semissíncrona

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. Defina as opções de cópia

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

5. Inicie o escravo e verifique o status da biblioteca escrava

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

Acho que você gosta

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