Percona MySQL5.6 半同步复制

2015-11-10 12:15:58 · 作者: · 浏览: 5

先配置普通的clone


两台服务器,一主一备


主服务器:


10.10.1.30


Slave:


10.10.1.200


修改每台机器的my.cnf文件,分别修改server_id


主服务器server_id= 1 ,slave 的server_id=2


重启两台服务器,通过:


show variables like 'server_id';


可以查看到两台服务器的server_id均不一样。


登录Master,输入:


grant replication slave on *.* to 'repl'@'10.10.1.200' identified by 'password';
flush privileges;
show master status;


记录master的File 及 Postion字段,一会待用。


登录Slave,输入:


mysql> change master to
? ? -> master_host='10.10.1.30',
? ? -> master_port=3306,
? ? -> master_user='repl',
? ? -> master_password='password',
? ? -> master_log_file='bin-file.000035',? ? //刚刚Master那个File字段
? ? -> master_log_pos=407;? ? ? ? ? ? ? ? ? ? ? ? //刚刚Master那个Postion字段


mysql> start slave;
Query OK, 0 rows affected (0.03 sec)


输入:show slave status\G
若无报错信息,则clone配置完成。


现在配置半同步复制:


检查是否存在半同步复制的插件,一般5.6版本均自带。


到:/usr/lib64/mysql/plugin 这里查看是否存在:


[root@localhost plugin]# ll -h semisync_*
-rwxr-xr-x. 1 root root 40K Sep 15 00:16 semisync_master.so
-rwxr-xr-x. 1 root root 14K Sep 15 00:16 semisync_slave.so


然后登录Master,输入:


install plugin rpl_semi_sync_master soname 'semisync_master.so';



再登录Slave 输入:


install plugin rpl_semi_sync_slave soname 'semisync_slave.so';


这两个文件。然后分别在Master的my.cnf文件上添加:


rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=3000
rpl_semi_sync_master_trace_level=32
rpl_semi_sync_master_wait_no_slave=on


binlog_format=ROW
binlog_row_image=minimal


在Slave的my.cnf文件添加:


rpl_semi_sync_slave_enabled=1
slave-parallel_workers=4


binlog_format=ROW
binlog_row_image=minimal


最后slave-parallel_worker参数可以增加slave工作线程,提高性能。而binlog_format 使用row格式会更安全,将image设置为minimal,则binlog只会记录受影响的行。
分别重启两台服务器均可。


然后可以在master或者slave上输入:


show global variables like 'rpl_semi%';