2.4 功能测试
2.4.1 如何验证半同步复制是否正常工作
安装完毕后,就要完成主从同步配置了,在MySQL5.5版本中该配置方法和MySQL5.1版本一样。
首先,在master库上导出一份全量数据:
/usr/local/MySQL/bin/MySQLdump -uroot -p123456 -q
--single-transaction --master-data=2 -A > alldata.sql
然后,把主库上导出的全量数据远程复制到从库上,在slave库上导入全量数据完毕后:
CHANGE master TO
master_HOST='192.168.8.22',master_USER='repl',master_PASSWORD='repl',master_PORT=3306,master_LOG_FILE='MySQL-bin.000001',master_LOG_POS=107;
start slave;
建立主从复制,并开启同步。
如何验证半同步复制模式是否已经开始工作了呢?可以采用如下方法。
在master主库上,查看状态,如下:
MySQL> show status like '%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 | 1 |
+----------------------------------------------------------------------+---------+
14 rows in set (0.00 sec)
在上面的状态信息中,有以下参数值得关注:
Rpl_semi_sync_master_status:指示主服务器使用的是异步复制模式,还是半同步复制模式。
Rpl_semi_sync_master_clients:显示有多少个从服务器配置成了半同步复制模式。
Rpl_semi_sync_master_yes_tx:显示从服务器确认的成功提交数量。
Rpl_semi_sync_master_no_tx:显示从服务器确认的不成功提交数量。
在slave从库上查看状态,如下:
MySQL> show status like '%semi%';
+--------------------------------------------+---------+
| Variable_name | Value |
+--------------------------------------------+---------+
| Rpl_semi_sync_slave_status | ON |
+--------------------------------------------+---------+
1 rows in set (0.00 sec)
在上面的状态信息中,有以下参数值得关注:
Rpl_semi_sync_slave_status:指示从服务器是否启动半同步复制模式,如果状态值为ON,表示半同步复制模式已经开始工作。
是否开启半同步复制模式,在日志里也有显示,如下所示:
120518 11:39:09 [Note] slave I/O thread: Start semi-sync replication to master 'repl@192.168.8.22:3306' in log 'MySQL-bin.000002' at position 107