天天看點

mysql5.6半同步複制_mysql5.6 semi replication 半同步複制配置

--###MYSQL 半同步配置 用于主備切換是以主備配置相同

--1、插件位置

mysql> show variables like 'plugin_dir'

-> ;

+---------------+------------------------------+

| Variable_name | Value |

+---------------+------------------------------+

| plugin_dir | /usr/local/mysql/lib/plugin/ |

+---------------+------------------------------+

[[email protected] data]$ ll /usr/local/mysql/lib/plugin/semisync_*

-rwxr-xr-x 1 root root 415020 Jul 5 19:50 /usr/local/mysql/lib/plugin/semisync_master.so

-rwxr-xr-x 1 root root 248711 Jul 5 19:50 /usr/local/mysql/lib/plugin/semisync_slave.so

--2、master/slave 加載插件

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

show plugins; #--驗證加載是否正常

--3、master/slave 開啟半同步功能

vi /etc/mysql/my.cnf

rpl_semi_sync_master_enabled = 1 #--master 開啟半同步功能

rpl_semi_sync_master_timeout = 3000 #--超出3秒改為異步複制

rpl_semi_sync_slave_enabled = 1 #--slave 開啟半同步功能

--4、重新開機mysql

--###監控半同步複制 監控同步模式/監控同步狀态

--master

mysql> show status like '%Rpl_semi_sync%';

+--------------------------------------------+-------+

| Variable_name | Value |

+--------------------------------------------+-------+

| Rpl_semi_sync_master_clients | 1 |

| Rpl_semi_sync_master_net_avg_wait_time | 476 |

| Rpl_semi_sync_master_net_wait_time | 476 |

| Rpl_semi_sync_master_net_waits | 1 |

| 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 | 610 |

| Rpl_semi_sync_master_tx_wait_time | 610 |

| Rpl_semi_sync_master_tx_waits | 1 |

| Rpl_semi_sync_master_wait_pos_backtraverse | 0 |

| Rpl_semi_sync_master_wait_sessions | 0 |

| Rpl_semi_sync_master_yes_tx | 1 |

+--------------------------------------------+-------+

Rpl_semi_sync_master_status = on #--master 開啟半同步功能

Rpl_semi_sync_master_clients = 1 #--有多少個client 開啟半同步功能

--slave

mysql> show status like '%Rpl_semi_sync%';

+----------------------------+-------+

| Variable_name | Value |

+----------------------------+-------+

| Rpl_semi_sync_slave_status | ON |

+----------------------------+-------+

--模拟逾時後 半同步狀态

--slave

stop slave io_thread;

mysql> show status like '%Rpl_semi_sync_slave_status%';

+----------------------------+-------+

| Variable_name | Value |

+----------------------------+-------+

| Rpl_semi_sync_slave_status | OFF |

+----------------------------+-------+

--master 超過 rpl_semi_sync_master_timeout 該值,master不再等待slave接受确認,而是自動送出并變為異步複制

mysql> show variables like '%rpl_semi_sync_master_timeout%';

+------------------------------+-------+

| Variable_name | Value |

+------------------------------+-------+

| rpl_semi_sync_master_timeout | 3000 |

+------------------------------+-------+