千家信息网

Mysql5.7中怎么实现半同步复制

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章将为大家详细讲解有关Mysql5.7中怎么实现半同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。0.系统版本mysql> select
千家信息网最后更新 2025年01月21日Mysql5.7中怎么实现半同步复制

这篇文章将为大家详细讲解有关Mysql5.7中怎么实现半同步复制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

0.系统版本

mysql> select version();+------------+| version()  |+------------+| 5.7.25-log |+------------+1 row in set (0.00 sec)
  1. 在主上安装和开启

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';Query OK, 0 rows affected (0.03 sec)set global rpl_semi_sync_master_enabled=on;

2.在从上安装和开启

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';Query OK, 0 rows affected (0.01 sec)mysql> set global rpl_semi_sync_slave_enabled=on;Query OK, 0 rows affected (0.00 sec)

3.确认是否安装成功

mysql> show variables like '%semi%';+-------------------------------------------+------------+| Variable_name                             | Value      |+-------------------------------------------+------------+| rpl_semi_sync_master_enabled              | OFF        || rpl_semi_sync_master_timeout              | 10000      || rpl_semi_sync_master_trace_level          | 32         || rpl_semi_sync_master_wait_for_slave_count | 1          || rpl_semi_sync_master_wait_no_slave        | ON         || rpl_semi_sync_master_wait_point           | AFTER_SYNC |
+-------------------------------------------+------------+6 rows in set (0.00 sec)

4.用另一个方法确认是否安装成功

mysql> show plugins;+----------------------------+----------+--------------------+----------------------+---------+| Name                       | Status   | Type               | Library              | License |+----------------------------+----------+--------------------+----------------------+---------+| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     || sha256_password            | ACTIVE   | AUTHENTICATION     | NULL                 | GPL     || CSV                        | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_TEMP_TABLE_INFO     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || INNODB_SYS_VIRTUAL         | ACTIVE   | INFORMATION SCHEMA | NULL                 | GPL     || MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL                 | GPL     || partition                  | ACTIVE   | STORAGE ENGINE     | NULL                 | GPL     || ngram                      | ACTIVE   | FTPARSER           | NULL                 | GPL     || validate_password          | ACTIVE   | VALIDATE PASSWORD  | validate_password.so | GPL     || rpl_semi_sync_master       | ACTIVE   | REPLICATION        | semisync_master.so   | GPL     |+----------------------------+----------+--------------------+----------------------+---------+46 rows in set (0.00 sec)


5.参数解释:

rpl_semi_sync_master_enabled ##设置为on表示开启了半同步功能rpl_semi_sync_master_timeout ##单位是毫秒,表示如果主库等待从库回复消息的时间超过该值,就自动切换为异步复制模式rpl_semi_sync_master_wait_for_slave_count ##它控制主库接收多少个从库写事物成功反馈,才返回成功给客户端rpl_semi_sync_master_wait_point ##默认值是AFTER_SYNC,含义是主库将每个事物写入binlog,并传递给从库,刷新到中继日志,主库开始等待从库的反馈,接收到从库的回复之后,再提交事物并且返回"commit ok"结果给客户端

6.重启从库的io线程让设置生效

stop slave io_thread;

start slave io_thread;

关于Mysql5.7中怎么实现半同步复制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0