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

本文关键字:数据库 SQLite 服务器 同步 MySQL 复制 何复制 大型 一个 | 更新日期: 2023-09-27 18:07:30

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

为了提高速度,我想在运行Windows或Linux的远程计算机("slave")上复制这些表,这些计算机正在进行数据分析(因此没有本地并发问题)。为此,我考虑使用SQLite数据库,它将包含主数据库的同步快照。

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

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

到目前为止,我意识到以下可能性:

  • DBSync for SQLite &MySQL
  • 也许greplicator和dbForge数据比较SQL Server

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

点击-利用利用——水龙头!

Heroku的家伙写了一个很好的小Ruby脚本来帮助解决这个问题。我想你会发现它经过了很好的测试,总的来说是一个很好的小数据库无关的同步工具。

https://github.com/ricardochimal/taps

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

注意注意事项

任何一款优秀的神奇软件都有一些警告,最好是提前告诉他们:

**Known Issues**
  • 外键约束在模式传输中丢失

  • 没有主键的表传输速度会非常慢。这是由于它在中具有较大偏移值时效率低下查询。

  • 当前不支持多个模式

谢谢,

您可以使用SQLyog数据同步工具,使用该工具您可以为表指定一个有效的SQL WHERE子句,仅同步那些满足WHERE子句的行。