mysql> create table test1(id int(4),name varchar(20));
mysql> show tables;
+――――― +
| Tables_in_test1 |
+――――― +
| name |
| test1 |
| user |
+――――― +
3 rows in set (0.00 sec)
// 在B服务器上查询
192.168.20.102
mysql> use test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+――――― +
| Tables_in_test1 |
+――――― +
| name |
| test1 |
| user |
+――――― +
3 rows in set (0.00 sec)
// 在B服务器上建立一个表
192.168.20.102
mysql> create table test2(id int(4),name varchar(20));
mysql> show tables;
+――――― +
| Tables_in_test1 |
+――――― +
| name |
| test1 |
| test2 |
| user |
+――――― +
4 rows in set (0.00 sec)| user |
+――――― +
3 rows in set (0.00 sec)
// 在A服务器上查询
192.168.20.101
mysql> show tables;
+――――― +
| Tables_in_test1 |
| name |
| test1 |
| test2 |
| user |
+――――― +
4 rows in set (0.00 sec)
双向复制试验成功!!!
mysql5.5.9半同步复制功能部署
1.mysql5.5.9 半同步复制功能:
mysql5.5 版本支持半同步复制功能(Semisynchronous Replication),但
还不是原生的支持,是通过plugin来支持的,并且默认是没有安装这个插件的。
不论是二进制发布的,还是自己源代码编译的,都会默认生成这个插件,
一个是针对master 的一个是针对slave的,在使用之前需要先安装这俩plugins
首先先检查 mysql是否支持动态添加插件,
mysql.sock@mysql> select @@have_dynamic_loading ;
+------------------------+
| @@have_dynamic_loading |
+------------------------+
| YES |
+------------------------+
1 row in set (0.00 sec)
支持动态增减插件,
添加插件:
mysql.sock@(none)> install plugin rpl_semi_sync_master soname
semisync_master.so ;
Query OK, 0 rows affected (0.00 sec)
mysql.sock@(none)> install plugin rpl_semi_sync_slave soname
semisync_slave.so;
Query OK, 0 rows affected (0.00 sec)
添加完插件后,系统会默认的增加了几个系统参数
mysql.sock@(none)> show global variables like rpl_semi_sync%;
+------------------------------------+-------+
| Variable_name | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_slave_enabled | OFF |
| rpl_semi_sync_slave_trace_level | 32 |
+------------------------------------+-------+
6 rows in set (0.00 sec)
这些参数是可以动态修改的
rpl_semi_sync_master_enabled :
启动master 支持半同步复制。
rpl_semi_sync_master_timeout :
主库等待半同步复制信息返回的超时间隔,默认10秒
rpl_semi_sync_master_trace_level :
监控等级:
1 = general level (for example, time function failures)
16 = detail level (more verbose information)
32 = net wait level (more information about network waits)
64 = function level (information about function entry and exit)
rpl_semi_sync_master_wait_no_slave :
是否允许master 每个事物提交后都要等待slave 的receipt信号。
默认为on ,每一个事务都会等待,如果slave当掉后,当slave追赶上master的日志时
,可以自动的切换为半同步方式,如果为off,则slave追赶上后,也不会彩玉半同步的
方式复制了,需要手工发动。
rpl_semi_sync_slave_enabled :
启动slave 支持半同步复制。
rpl_semi_sync_slave_trace_level :
监控等级,同 上面的rpl_semi_sync_master_trace_leve。
相应的系统的状态变量:
mysql.sock@mysql> show global status like rpl_semi_sync%;
+--------------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients | 1 |
| Rpl_semi_sync_master_net_avg_wait_time | 902 |
| Rpl_semi_sync_master_net_wait_time | 902 |
| Rpl_semi_sync_master_net_waits