2011-09-02 47 views
1

我想从10个不同的机器收集MySQL数据并将其聚合到另一台机器上的一个大型MySQL数据库中。所有机器都是基于Linux的。从机器X传输MySQL数据到机器Y

如果我想周期性地收集“delta”数据,那么“mysqldump”语法是什么?

还有其他方法可以实现吗?

+0

为什么不使用复制呢? –

回答

0

mysqldump无法生成增量式备份,因为它没有任何方式可以确定哪些行(或架构的哪些部分!)自上次备份以来,或甚至最后一次备份时发生了更改。为此,你需要一些可以读取MySQL binlog的东西,并将它转换成一堆语句;我不知道任何存在的东西。

MySQL备份中当前的“先进技术”通常被认为是Percona XtraBackup

+0

你可以使用GNU diff/patch来完成它们。 – brandon

0

Multiple Master Slave?将10个中的每一个都作为主人,并将一个奴隶集合到所有10个人。这假定您正在聚合的数据在每个10上都是不同的。如果所有10上的数据相同(或相似),并且您想要交错它以及整合它,那么这是行不通的。

1

这不是MySQL本机支持的。您可以使用复制,但复制副本只能有一个主节点,而不能有10个主节点。我知道两个可行的选项:

1)是编写脚本,以循环方式切换主站之间的副本。您可能希望参考http://code.google.com/p/mysql-mmre/http://thenoyes.com/littlenoise/?p=117。 2)是使用ETL工具。

如果您遇到困难,我们(Percona)可以为您提供帮助。这是一个普遍的要求,但并不容易,因为每个案件都不一样。

相关问题