如何将大型MySQL数据库(在服务器上)复制到本地SQLite数据库(单向同步)

时间:2011-09-05 21:52:54

标签: c# mysql sqlite synchronization replication

我在Windows服务器上有一个MySQL数据库(“Master”),它应该存储数十GB(使用InnoDB压缩),每天添加新记录。

出于速度目的,我想复制运行Windows或Linux的远程计算机(“Slaves”)上的表,这些表正在进行数据分析(因此本地没有并发问题)。 我想到为此目的使用SQLite数据库,它将包含Master的同步快照。

到目前为止,我一直在使用Dropbox(用于团队)同步csv文件,但delta sync可能无法用于大型数据库文件。

因此,我非常感谢您输入以确定在这两个不同引擎之间执行复制的最佳方法。特别是,它应该能够检测字段级别的变化,以限制需要传输的数据量!

到目前为止,我知道以下可能性:

2 个答案:

答案 0 :(得分:0)

点按 - 点按 - 点按 - 点击!

Heroku的人写了一个很好的小Ruby脚本来帮助解决这个问题。我认为你会发现它经过了很好的战斗测试,而且通常只是一个很好的小数据库无关的“同步”工具。

https://github.com/ricardochimal/taps

http://adam.heroku.com/past/2009/2/11/taps_for_easy_database_transfers/

注意警告

有任何好的魔法软件都有警告,最好提前了解它们:

**Known Issues**
  • 外键约束在架构传输中丢失

  • 没有主键的表格传输速度极慢。这是因为它具有较大的偏移值是低效的 查询。

  • 目前不支持多个模式

谢谢,

Anuj

答案 1 :(得分:0)

您可以使用SQLyog Data synchronization tool使用该{{3}}指定表的有效SQL WHERE子句,以仅同步满足WHERE子句的那些行。