在mysql中将数据从slave更新到master
Posted
技术标签:
【中文标题】在mysql中将数据从slave更新到master【英文标题】:updating data from slaves to master in mysql 【发布时间】:2013-11-14 20:49:42 【问题描述】:我正在运行一个带有多个从属服务器的主 mysql 服务器。从主服务器到从服务器的复制过程工作正常。但是有一个问题:我需要将一张表中的内容从slave推送到master。
同样的表也被master自己使用,但是每个mysql服务器在那个表中都有自己的数据。因此我需要将数据从从站添加到主站。
我曾想过跟踪每个从属服务器的查询,然后将查询推送到主服务器,但它看起来很混乱,每当我遇到错误时,我都会被卡住。
表格如下所示:
服务器 ID(关键字段)- 日期(关键字段)- 统计信息
每台服务器都会跟踪其服务器上的统计数据,并且主服务器需要整合所有这些以用于报告目的。
有什么想法吗?
【问题讨论】:
你真的需要将这些数据从slave合并到master上的同一张表吗?您如何看待使用 crontab+bash 从复制中排除该表并整合数据(从主服务器发送到从服务器并返回)? 我确实已经从复制中排除了它。我只需要将来自从属的数据更新到该表的主控。我现在正在考虑在从属服务器上执行 mysqldump,然后使用 crontab 将其推回主服务器,使用 REPLACE 而不是 INSERT 如果你不能避免写入奴隶你可以去合并,没关系。你也可以看看钨复制器。您可以轻松设置从属多个主控(在这种情况下,您的主控将成为从属,所有从属将成为主控)。你也跟着去 【参考方案1】:我最终用 mysqldump 转储了表,然后通过 crontab 将其添加到主数据库。
我意识到在这种情况下使用带有替换选项的 mysqldump 很重要,因为我可能已经在其中输入了条目。请注意,我使用的密钥确保条目仅来自某个从属/主控,因此没有服务器位于另一台服务器的方式。
解决方案:
mysqldump -u xxx -pyyyy database table | mysql -h host -u xxxx -p yyy database
【讨论】:
以上是关于在mysql中将数据从slave更新到master的主要内容,如果未能解决你的问题,请参考以下文章