mysql 5.6 双向互备_mysql双主互备

a0019aa71395816d587c29590207dc5c.png

5.则配置同步信息。

change master to master_host='192.168.1.102',master_port=3306,master_user='replication',master_password='test',master_log_file='binlog.000002',master_log_pos=565; //主服务器上执行

change master to master_host='192.168.1.101',master_port=3306,master_user='replication',master_password='test',master_log_file='binlog.000002',master_log_pos=565;//备服务器上执行

6.打开同步 start slave

7.查看slave的状态show slave status \G看到如下,说明成功

623b1c91808a7a702b92ad7bbcdc06ff.png

【半同步机制】

1.进入mysql执行如下:

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

同时配置文件增加如下配置,重启mysql即可。

#半同步,10s超时

rpl_semi_sync_master_enabled=1

rpl_semi_sync_master_timeout=10000

rpl_semi_sync_slave_enabled=1

总结:半同步复制个人感觉是维持数据完整性,安全性的的一个策略,虽会损失一点性能,还是值得的。配置很简单,关键是理解其工作机制。

三个问题:

1.为什么server_id是必须的,而且配置主从同步的server_id不允许重复。

答:mysql写入到binlog时候会携带上server_id,所以在主从同步时候,通过server_id 防止死循环。

假设 server_id的1001 为A,server_id 的 1002 为B,在A机器写入数据的时候binlog带上 1001 信息,通过binlog同步到B机器上,B机器上的binlog会记录的会携带上1001的信息,这时候如果是双主形式的互备,A同步B的时候通过server_id会忽略该数据,防止死循环。

2.异步机制是什么与半同步机制有何差异。

答:简单来讲

a.异步机制任务执行到1即结束事务。

b.半同步机制是执行到3结束事务,如果在2或者3超时时候,会采用半同步机制。

综述,半同步机制更能保障数据的一致性问题,而异步机制的性能更优。

564ab5da52f3aec1f5c356cb1f73efae.png

3.双主同步如果字段key是自增长的如何保证不冲突?

答:如果双主互备的情况下,通过auto_increment_increment,即id的自增为2,然后双主两台的id起始值不同,来保障两台机器的id完全不相同,这样在互相切换过程中不会导致id冲突而丢失数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值