【问题标题】:How to replicate a large MySQL database (on a server) to a local SQLite database (1 way sync)如何将大型 MySQL 数据库(在服务器上)复制到本地 SQLite 数据库(1 路同步)
【发布时间】:2011-09-05 21:52:53
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# mysql sqlite synchronization replication


    【解决方案1】:

    轻拍 - 轻拍 - 轻拍 -- 轻拍!

    Heroku 的人编写了一个不错的 Ruby 小脚本来帮助解决这种情况。我想你会发现它经过了很好的实战测试,总的来说只是一个不错的小型数据库无关“同步”工具。

    https://github.com/ricardochimal/taps

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

    注意警告

    任何优秀的神奇软件都有一些注意事项,最好提前了解它们:

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

    • 没有主键的表传输速度会非常慢。这是因为在 查询。

    • 目前不支持多模式

    谢谢,

    阿努杰

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 1970-01-01
        • 2010-11-04
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        相关资源
        最近更新 更多