mysql半同步复制两种模式_Mysql半同步复制模式

Mysql半同步复制模式

Mysql复制默认是异步完成的,半同步方式是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.

这些执行完成后,半同步就配置完了。

Master看到的状态:

mysql> show status like 'rpl%';

+--------------------------------------------+-------------+

| Variable_name| Value|

+--------------------------------------------+-------------+

| Rpl_semi_sync_master_clients| 1|

| Rpl_semi_sync_master_net_avg_wait_time| 0|

| Rpl_semi_sync_master_net_wait_time| 0|

| Rpl_semi_sync_master_net_waits| 0|

| Rpl_semi_sync_master_no_times| 0|

| Rpl_semi_sync_master_no_tx| 0|

| Rpl_semi_sync_master_status| ON|

| Rpl_semi_sync_master_timefunc_failures| 0|

| Rpl_semi_sync_master_tx_avg_wait_time| 0|

| Rpl_semi_sync_master_tx_wait_time| 0|

| Rpl_semi_sync_master_tx_waits| 0|

| Rpl_semi_sync_master_wait_pos_backtraverse | 0|

| Rpl_semi_sync_master_wait_sessions| 0|

| Rpl_semi_sync_master_yes_tx| 0|

| Rpl_status| AUTH_MASTER |

+--------------------------------------------+-------------+

15 rows in set (0.00 sec)

Slave看到的状态:

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值