首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聚合多个分布式MySQL数据库

聚合多个分布式MySQL数据库
EN

Stack Overflow用户
提问于 2010-07-19 16:52:13
回答 1查看 622关注 0票数 2

我有一个项目,需要我们维护多台计算机上的几个MySQL数据库。它们将具有相同的模式。

每个数据库都必须定期将其内容发送到主服务器,主服务器将聚合所有传入的数据。内容应该被转储到一个文件中,该文件可以通过闪存驱动器传送到支持互联网的计算机上发送。

键将是命名空间的,所以应该不会有任何冲突,但我不是完全确定一个优雅的方法来设计它。我正在考虑为每一行加上时间戳,并在每个表上运行查询"SELECT * FROM [table] WHERE timestamp > last_backup_time",然后将其转储到一个文件中,并在主服务器上进行大容量加载。

分布式计算机将不能访问互联网。我们在第三世界国家的一个非常农村的地方。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-19 17:04:59

你的

代码语言:javascript
复制
SELECT * FROM [table] WHERE timestamp > last_backup_time

将错过DELETEed行。

您可能希望通过U盘使用MySQL复制。也就是说,在源服务器上启用binlog,并确保binlog不会自动丢弃。将binlog文件复制到U盘,然后清除主日志到...在源服务器上擦除它们。

在聚合服务器上,使用mysqlbinlog命令将binlog转换为可执行脚本,然后将该数据作为SQL脚本导入。

聚合服务器必须拥有每个源服务器数据库的副本,但只要您的SQL all使用非限定表名(从不使用schema.table语法引用表),该副本就可以位于不同的模式名下。导入mysqlbinlog生成的脚本(带有正确的使用命令前缀)将反映聚合服务器上的源服务器更改。

然后,可以使用完全限定的表名(即,在JOIN或INSERT中使用schema.table语法...SELECT语句)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3279589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档