MySQL主从replication半同步设置及支持基于ssl复制配置(二)

2014-11-24 18:45:16 · 作者: · 浏览: 4
启:
开启二进制日志 和中继日志功能
[mysqld]
server-id=1
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=realy-bin.index
>grant replication client,replication slave on *.* to repl@'172.16.%.%'
>change MASTER TO MASTER_HOST='172.16.21.1',MASTER_USER='repl',MASTER_PASSWORD='123456'
MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=811 //这里的MASTER_LOG_FILE 和MASTER_LOG_POS是主服务器的
show master status;信息
>start slave;
>show slave status;

主2:(172.16.21.1)
如果是第一次开启:
开启二进制日志 和中继日志功能
[mysqld]
server-id=1
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin.index
>grant replication client,replication slave on *.* to repl@'172.16.%.%'
>change MASTER TO MASTER_HOST='172.16.21.2',MASTER_USER='repl',MASTER_PASSWORD='123456'
MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=811 //这里的MASTER_LOG_FILE 和MASTER_LOG_POS是主服务器的
show master status;信息
>start slave;
>show slave status;

三、设置半同步:
mysql的主从复制是基于异步实现的,可以通过在master端安装 semisync_master.so 插件
在slave端安装 semisync_slave.so 插件来实现半同步,这里所谓的半同步是当一主多从时,
主给一个从实现同步,当此过程超过时间限定后(通过rpl_semi_sync_master_timeout 来设置),
则降级为异步。
设置方法:
主服务器(172.16.21.1)
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
mysql> SET GLOBAL rpl_semi_sync_master_timeout = 1000;
从服务器(172.16.21.2)
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
mysql> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
// 重启从服务器的IO线程 以实现插件功能

查看从服务器是否开启semi_sync
mysql> show global status like 'rpl_semi%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON |
+----------------------------+-------+
1 row in set (0.04 sec)

查看主服务器是否开启semi_sync
mysql> show global status like 'rpl_semi%';
+--------------------------------------------+-------+
| 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 |
+-----