配置好的主从,A为M端,B为S端
正常情况下,A端插入数据,B端能正常查询到,不多说。
把网线拔掉,在A端插入数据
mysql> insert into t1 values(4,5);
Query OK, 1 row affected (0.14 sec)
再查询看看
mysql> select * from t1;
+------+------+
| c1 |
c2 |
+------+------+
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
+------+------+
10 rows in set (0.00 sec)
数据进来了。。
这时候把网线接上去,等待2分钟(在CSDN上有人说我太猴急了,说恢复需要一段时间),再查B端
mysql> select * from t1;
+------+------+
| c1 |
c2 |
+------+------+
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
+------+------+
7 rows in set (0.00 sec)
卖糕的,数据木有过来。
网络正常的情况下,再在A端插入2条记录,到B去查询,还是木有数据过来。
应该是复制在网络断开的时候已经停止了,但在网络修复的时候,并没有恢复。咋整?
目前测试到的办法:
在B端,停止从服务
mysql> slave stop;
Query OK, 0 rows affected (0.03 sec)
再启动
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
再查询
mysql> select * from t1;
+------+------+
| c1 |
c2 |
+------+------+
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
+------+------+
12 rows in set (0.00 sec)
数据终于过来了,应该喝几杯庆祝一下了。
可是如果这样也算问题解决了,就太没技术含量了。继续测试。。。
在修复的情况下,断网,不做任何操作,再恢复网络,看看是怎么样的,是否会恢复呢?
mysql> insert into t1 values(4,6);
Query OK, 1 row affected (0.19 sec)
到B端查询看看
mysql> select * from t1;
+------+------+
| c1 |
c2 |
+------+------+
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 2
| 3 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
| 4
| 5 |
| 4
| 6 |
+------+------+
13 rows in set (0.00 sec)
数据同步了。。
现在看来,如果主从同时不操作,网络修复的时候,是能够自动同步的,如果主做了操作后,网络才恢复的,需要重新启动从端的从属服务才能恢复。。。