制?
因为开启这个功能之后,主服务器只等待多个从服务器中的指定的一台从服务器复制成功,然后才进行其他写操作,使这个从服务器和主服务器上的数据完全同步,而并不管其他的从服务器。这在一定程度上就保证了我们数据的安全性。这个功能需要打由google贡献的补丁,它是以插件的形式存在的。补丁存放的位置在:/usr/local/mysql/lib/plugin/
2.主服务器打补丁:
/usr/local/mysql/bin/mysql
---------------------------------------------
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SHOW GLOBAL VARIABLES LIKE '%semi%';? ? ? ? //查看状态

3.主服务器修改配置:
SET GLOBAL rpl_semi_sync_master_enabled=1;
SET GLOBAL rpl_semi_sync_master_timeout=1000;
4.从服务器打补丁:
/usr/local/mysql/bin/mysql
---------------------------------------------
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SHOW GLOBAL VARIABLES LIKE '%semi%';

5.从服务器修改配置:
SET GLOBAL rpl_semi_sync_slave_enabled=1;
STOP SLAVE;
START SLAVE;
6.主服务器查看状态:
SHOW GLOBAL STATUS LIKE '%semi%';

四、主主复制
1.由于刚才做了许多操作,为了不影响之后的实验,我们先将数据库进行重置:
service mysqld stop
rm -rf /mydata/data/*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //删除数据库文件
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/mydata/data/? ? ? ? //初始化mysql
2.修改my.cnf:
19.43上:
vim /etc/my.cnf
-------------------------------------------
[mysqld]
server-id=1
log-bin=/mydata/data/mysql1-bin? ? ? ? ? ? ? //开启二进制日志
relay_log=/mydata/data/relay-log? ? ? ? ? ? ? //开始中继日志
auto-increment-increment = 2? ? ? ? ? ? ? ? ? //每次增长的数值
auto-increment-offset = 1? ? ? ? ? ? ? ? ? ? //开始的数值
19.48上:
vim /etc/my.cnf
-------------------------------------------
[mysqld]
server-id=2
log-bin=/mydata/data/mysql2-bin
relay_log=/mydata/data/relay-log
auto-increment-increment = 2
auto-increment-offset = 2
3.创建具有复制权限的用户:
19.43上:
service mysqld start
/usr/local/mysql/bin/mysql
------------------------------------------
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mmm@192.168.19.48 IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
19.48上:
service mysqld start
/usr/local/mysql/bin/mysql
------------------------------------------
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO mmm@192.168.19.43 IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
4.查看二进制位置:
19.43上:
SHOW MASTER LOGS;

19.48上使用同样的命令:

5.配置CHANGE MASTER:
19.43上:
CHANGE MASTER TO MASTER_HOST='192.168.19.48',MASTER_USER='mmm',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql2-bin.000001',MASTER_LOG_POS=642;
START SLAVE;
19.48上:
CHANGE MASTER TO MASTER_HOST='192.168.19.43',MASTER_USER='mmm',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql1-bin.000001',MASTER_LOG_POS=642;
START SLAVE;
6.查看状态:
SHOW SLAVE STATUS\G


之后的复制演示这里不再演示,请大家自行尝试。至此,所有试验演示完毕,谢谢!
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------