| 
 
查看: 3510|回复: 9
 
 | 
【紧急求助】mysql replication 遇到奇怪问题!!!
[复制链接]
 | 
 
 
 | 
 | 
 
我有两个server 跑着mysql。 
server A,server B  
 
然后这两个server时时都有最update的data,两个server在不同的地点,而且两个server都能同时insert data。 
所以我用 two way replication, 然后用 VPN link 起来。 
 
server A set master to B 
server B set master to A 
server A 每天操作,server B 不定时操作(可能整个月都没操作) 
 
就这样没问题的几个月直到有一天我发现 server B 的 data 不 synchronize, 我又重新set 过 server B set master to A 解决。还以为是个案。 
没想到几个月后又同样的问题出现,server B 拿不到server A 的资料。 所以当下我就切断 VPN 同时把两个server 都执行 stop slave; 的 command  
 
大问题出来了, 本来存在 server A 的 data , 差不多1000++个 row 不见了!!! 
 
 
请求帮助 
1. 如何防止 mysql replication 不synchronize的问题? 
2. 就为了增加知识,为什么我执行 stop slave 会引发这些问题? 
 
3. 我知道能从mysql-bin log 提取所有 SQL 的query记录已恢复数据。 而我也有哪些log。 
但是看到的资料都很模糊,没有详细的步骤。请问如何使用mysqlbinlog 回复data?【已解决】 
 
感激感激,谢谢! 
 
 本帖最后由 pohlee 于 27-8-2014 07:23 AM 编辑  
 
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 26-8-2014 09:51 PM
|
显示全部楼层
 
 
 
不是很熟replication ,好奇: 
server A set master to B 
server B set master to A  
电脑怎么分辨那里是最新的? 
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
 楼主 |
发表于 27-8-2014 06:03 AM
|
显示全部楼层
 
 
 
gkheng2003 发表于 26-8-2014 09:51 PM   
不是很熟replication ,好奇: 
 
电脑怎么分辨那里是最新的?  
 
 
没关系。。。 
mysql 自带的功能,用bin log 来记录sql query 然后pass 给其他 server。。。 
 
比如 我在server A 执行 insert, delete, update 他就会pass 那个 query 给server B 执行。。。这样是one way。。。 
two way 的话也是一样的道理 。。。在server B 执行 insert, delete, update 他就会pass 那个 query 给server A 执行。。。 
 
这样的话两边都能有相同的data了。。。 
 本帖最后由 pohlee 于 27-8-2014 06:06 AM 编辑  
 
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 27-8-2014 09:26 PM
|
显示全部楼层
 
 
 
pohlee 发表于 27-8-2014 06:03 AM   
没关系。。。 
mysql 自带的功能,用bin log 来记录sql query 然后pass 给其他 server。。。  
有没可能2边都在执行同一个record? 
 esp. transactional data? 
 
好像和MSSQL 的publication 一样? 
.gif)  
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 16-7-2015 10:08 AM
|
显示全部楼层
 
 
 
lz现在还在用着master-master rep吗? 
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
 楼主 |
发表于 24-8-2015 10:26 AM
|
显示全部楼层
 
 
 
 
 
 
 
没了,现在改用 single master multi slave 了。 
 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
		
 | 
 | 
 
 
发表于 26-8-2015 07:26 AM
|
显示全部楼层
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 30-10-2015 04:03 AM
|
显示全部楼层
 
 
 
Master to master replication , 问题很大, concurrent update 可以让你哭了。  Master A delete row X , Master B delete row X, replicate 就撞死。要嘛你就skip replication error。 
 
Mysql replication 懒惰的replicate Mysql  statement, 不是raw data sync , 你要来做 Sync 是很头痛的。好处是,你做SELECT update,replication Log 会很小。不过我宁愿要raw data sync, less surprise. |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 18-11-2015 09:25 AM
|
显示全部楼层
 
 
 
 
还在采用传统的基于纸张的备份系统,以保持您的所有文件? 
你应该停止这种行为了!cloud technology可以帮助您更有效的储存文件  
http://blog.exabytes.com.my/2014/02/cloud-backup-service-bank  |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 | 
 | 
 
 
发表于 7-8-2016 01:06 AM
|
显示全部楼层
 
 
 
| 
Master-Master Replicate一般上是为了防止主要的Master挂了,业务就跟着停止的问题而生的,但是由于是利用bin来透过网络分享资料,当M和M之间的网络有问题时,就会出现Replicate Error,然后Replicate就停止了。然后用了Master-Master Replicate就会开始浪费Autoincreament的ID啦。 |   
 
 
 
 |  
| 
 | 
 
 
 | 
 | 
 
| 
 | 
 | 
 
 
 
 
 |   | 
            本周最热论坛帖子
 
 
 
 |