到了这一步,我们就可以测试主从的同步了。
1.首先给主表解锁,写入一些东西。因为之前我们锁定了表。
mysql>unlock tables; 表解锁
mysql>use db1; 切换库
mysql>drop table help_category; 删除其中一个表
2.然后登陆到从mysql上,看看是否同步了。
mysql>use db1;
mysql>show tables;
注意:主从同步,指的是主变化,从同步。而不能在从上面改变数据,否则会使得同步紊乱,切记。
3.再次测试,删除主上一个表。
mysql>drop table proc;
4.登陆从mysql,mysql>show tables;
可以看到,主从已经同步,表一致了。创建表也一样,会同步。
5.主上面删除库db1
mysql>drop database db1; 删除库db1
mysql>show databases; 查看有哪些库
6.从上面查看库
mysql>show databases;
可以看到,从上面的库也被删除了。
根据铭哥多年的经验,发现mysql主从机制非常脆弱,经常中断同步的现象。所以,建议做主从的监控,核心是监控从的 Slave_IO_Running: Yes和Slave_SQL_Running: Yes 是否都是Yes
Last_IO_Errno: 和Last_IO_Error:是否有错误。
课后答疑:
请教三个问题:
一、MYSQL里面的主从是否正常工作的监控思路是什么?我只做个简单的监听端口是否存活,程序里面的具体状态没做过;
二、如果要实现双机互为主从,也就是都能写数据能做吗?
三、基于bin-log,有什么办法恢复到过去的某一个时间点的数据?
aming
1.监控思路是看,slave status,是否是两个yes,同时看两个io error有无东西。
2.互为主从,也就是所谓的主主,写任意机器都可以
3.根据bin-log是可以恢复到指定时间点的,网上文档很多