我想从10台不同的机器收集MySQL数据,并在不同的机器上聚合成一个大的MySQL数据库。所有机器都是基于Linux的。
如果我想定期执行此操作以仅收集“delta”数据,那么“mysqldump”语法是什么?
还有其他方法可以达到这个目的吗?
答案 0 :(得分:1)
MySQL本身不支持此功能。您可以使用复制,但副本只能有一个主服务器,而不能只有10个主服务器。我知道有两个可行的选择:
1)是编写一些内容,以循环方式在主服务器之间切换副本。您可以参考http://code.google.com/p/mysql-mmre/或http://thenoyes.com/littlenoise/?p=117。
2)是使用ETL工具。
如果您遇到困难,我们(Percona)可以帮助您。这是一个常见的请求,但并不容易,因为每个案例都不同。
答案 1 :(得分:0)
mysqldump
无法生成增量备份,因为它没有任何方法可以确定自上次备份以来哪些行(或架构的哪些部分!)已更改,或者甚至是上次备份时是。为此,您需要能够读取MySQL binlog并将其转换为一堆INSERT
/ UPDATE
/ DELETE
语句的内容;我不知道那些存在的东西。
MySQL备份中当前的“最新技术”通常被认为是Percona XtraBackup。
答案 2 :(得分:0)
多个主奴隶?让10中的每一个都作为主人,并且聚合成为所有10的奴隶。这假设您聚合的数据在每个10上是不同的。如果数据在所有10上是相同的(或类似的)并且您想要交错并整合它然后这将无法工作。