首页 / 数据库 / MySQL / Percona MySQL5.6 半同步复制
先配置普通的clone两台服务器,一主一备主服务器:10.10.1.30Slave: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 statusG
若无报错信息,则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=onbinlog_format=ROW
binlog_row_image=minimal在Slave的my.cnf文件添加:rpl_semi_sync_slave_enabled=1
slave-parallel_workers=4binlog_format=ROW
binlog_row_image=minimal最后slave-parallel_worker参数可以增加slave工作线程,提高性能。而binlog_format 使用row格式会更安全,将image设置为minimal,则binlog只会记录受影响的行。
分别重启两台服务器均可。然后可以在master或者slave上输入:show global variables like "rpl_semi%";本文永久更新链接地址