• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL半同步复制模式

mysql 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论

Mysql复制默认是异步完成的,半同步方式是google为mysql开发的一个补丁,在mysql5.5或者更高的版本中已经集成了这个功能。半同步

Mysql复制默认是异步完成的本文来源gao($daima.com搞@代@#码(网5,半同步方式是google为mysql开发的一个补丁,,在mysql5.5或者更高的版本中已经集成了这个功能。半同步的意思表示MASTER 只需要接收到其中一台SLAVE的返回信息,就会commit;否则需等待直至达到超时时间然后切换成异步再提交。这个做可以使主从库的数据的延迟较小,可以在损失很小的性能的前提下提高数据的安全性。

半同步的开启比较简单,是需要在master和slave都安装半同步插件,并启用就可以了。

查询mysql复制有没有使用半同步,

mysql> show variables like ‘rpl%’;

+——————-+——-+

| Variable_name | Value |

+——————-+——-+

| rpl_recovery_rank | 0 |

+——————-+——-+

1 row in set (0.00 sec)

或者使用show status like ‘rpl%’;

启用半同步模式:

在master执行

mysql> install plugin rpl_semi_sync_master soname ‘semisync_master.so’;

Query OK, 0 rows affected (0.03 sec)

mysql> set global rpl_semi_sync_master_enabled=0;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘rpl%’;

+————————————+——-+

| Variable_name | Value |

+————————————+——-+

| rpl_recovery_rank | 0 |

| rpl_semi_sync_master_enabled | OFF |

| rpl_semi_sync_master_timeout | 10000 |

| rpl_semi_sync_master_trace_level | 32 |

| rpl_semi_sync_master_wait_no_slave | ON |

+————————————+——-+

5 rows in set (0.00 sec)

mysql> set global rpl_semi_sync_master_enabled=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘rpl%’;

+————————————+——-+

| Variable_name | Value |

+————————————+——-+

| rpl_recovery_rank | 0 |

| rpl_semi_sync_master_enabled | ON |

| rpl_semi_sync_master_timeout | 10000 |

| rpl_semi_sync_master_trace_level | 32 |

| rpl_semi_sync_master_wait_no_slave | ON |

+————————————+——-+

rpl_semi_sync_master_enabled 的值是0(on)或者1(off),默认是1.

rpl_semi_sync_master_timeout的值默认是10000(10s)

5 rows in set (0.00 sec)

在slave执行如下操作:

mysql> install plugin rpl_semi_sync_slave soname ‘semisync_slave.so’;

Query OK, 0 rows affected (0.03 sec)

mysql> set global rpl_semi_sync_slave_enabled=1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘rpl%’;

+———————————+——-+

| Variable_name | Value |

+———————————+——-+

| rpl_recovery_rank | 0 |

| rpl_semi_sync_slave_enabled | ON |

| rpl_semi_sync_slave_trace_level | 32 |

+———————————+——-+

3 rows in set (0.00 sec)

mysql> show status like ‘rpl%’;

+—————————-+————-+

| Variable_name | Value |

+—————————-+————-+

| Rpl_semi_sync_slave_status | ON |

| Rpl_status | AUTH_MASTER |

+—————————-+————-+

2 rows in set (0.01 sec)

mysql> stop slave io_thread;

Query OK, 0 rows affected (0.00 sec)

mysql> start slave io_thread;

Query OK, 0 rows affected (0.00 sec)

rpl_semi_sync_slave_enabled的值是0(on)或者1(off),默认是1.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL半同步复制模式

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址