MySQL 5.5.23半同步复制配置安装

摘要:

     改模式可以确保slave接收完主服务器发送的binlog文件 并写入至master中继日志relay log量,然后再给主服务器一个反馈,告诉对方已接收完毕。出现异常时会暂时切换到异步复制模式。至少有一台半同步模式或slave信息为止。

一、安装配置操作

(一)确认master和slave上是否开启have_dynamic_loading

master:

##

1.是否开启have_dynamic_loading

mysql> show variables like 'have_dynamic_loading';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| have_dynamic_loading | YES   |
+----------------------+-------+

1 row in set (0.00 sec)

##

2.安装'semisync_master.so'

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';
Query OK, 0 rows affected (0.05 sec)

mysql> show plugins;
+-----------------------+--------+--------------------+--------------------+---------+
| Name                  | Status | Type               | Library            | License |
+-----------------------+--------+--------------------+--------------------+---------+
| binlog                | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| mysql_native_password | ACTIVE | AUTHENTICATION     | NULL               | GPL     |
| mysql_old_password    | ACTIVE | AUTHENTICATION     | NULL               | GPL     |
| MRG_MYISAM            | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| CSV                   | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| MyISAM                | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| MEMORY                | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| PERFORMANCE_SCHEMA    | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| BLACKHOLE             | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| InnoDB                | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| INNODB_TRX            | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_LOCKS          | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_LOCK_WAITS     | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP            | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP_RESET      | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMPMEM         | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMPMEM_RESET   | ACTIVE | INFORMATION SCHEMA | NULL               | GPL     |
| ARCHIVE               | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| partition             | ACTIVE | STORAGE ENGINE     | NULL               | GPL     |
| rpl_semi_sync_master  | ACTIVE | REPLICATION        | semisync_master.so | GPL     |
+-----------------------+--------+--------------------+--------------------+---------+
20 rows in set (0.00 sec)

##

3.重启动mysql后检查

mysql> show global status like 'rpl%';
+--------------------------------------------+-------------+
| 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           |
| Rpl_status                                 | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)


slave:

##

1.是否开启have_dynamic_loading

mysql> show variables like 'have_dynamic_loading';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| have_dynamic_loading | YES   |
+----------------------+-------+

##

2.安装'semisync_slave.so'

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
Query OK, 0 rows affected (0.01 sec)

mysql> show plugins;
+-----------------------+--------+--------------------+-------------------+---------+
| Name                  | Status | Type               | Library           | License |
+-----------------------+--------+--------------------+-------------------+---------+
| binlog                | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| mysql_native_password | ACTIVE | AUTHENTICATION     | NULL              | GPL     |
| mysql_old_password    | ACTIVE | AUTHENTICATION     | NULL              | GPL     |
| MEMORY                | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| MyISAM                | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| CSV                   | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| MRG_MYISAM            | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| ARCHIVE               | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| InnoDB                | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| INNODB_TRX            | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_LOCKS          | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_LOCK_WAITS     | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_CMP            | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_CMP_RESET      | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_CMPMEM         | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| INNODB_CMPMEM_RESET   | ACTIVE | INFORMATION SCHEMA | NULL              | GPL     |
| PERFORMANCE_SCHEMA    | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| BLACKHOLE             | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| partition             | ACTIVE | STORAGE ENGINE     | NULL              | GPL     |
| rpl_semi_sync_slave   | ACTIVE | REPLICATION        | semisync_slave.so | GPL     |
+-----------------------+--------+--------------------+-------------------+---------+
20 rows in set (0.00 sec)

mysql> show global status like 'rpl%';
+----------------------------+-------------+
| Variable_name              | Value       |
+----------------------------+-------------+
| Rpl_semi_sync_slave_status | OFF         |
| Rpl_status                 | AUTH_MASTER |
+----------------------------+-------------+

(二)配置maser slave的my.conf

分别在master和slave的my.cnf里添加以下配置

master

rpl_semi_sync_master_enabled=1  

rpl_semi_sync_master_timeout=1000  

rpl_semi_sync_master_trace_level=32  

rpl_semi_sync_master_wait_no_slave=on  

slave

rpl_semi_sync_slave_enabled=1  

(三)确认是否正常工作

master:

mysql> show global status like 'rpl%';
+--------------------------------------------+-------------+
| 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           |
| Rpl_status                                 | AUTH_MASTER |
+--------------------------------------------+-------------+
15 rows in set (0.00 sec)

slave:


mysql> show global status like 'rpl%';
+----------------------------+-------------+
| Variable_name              | Value       |
+----------------------------+-------------+
| Rpl_semi_sync_slave_status | ON          |
| Rpl_status                 | AUTH_MASTER |
+----------------------------+-------------+
2 rows in set (0.00 sec)

mysql> show slave status\G;

二、总结

主要确保主从数据一至性,等待时间长短决定了更新速度。因些增册改比传统的异步复抽稍慢一些。




你可能感兴趣的:(MySQL 5.5.23半同步复制配置安装)