3

我为几个小客户开发网站,我希望能够使我的本地数据库与每个客户的生产服务器保持同步。(我在考虑每晚更新)他们的许多数据库都在数百兆字节,所以我觉得每晚创建和传输完整的转储是多余的。

以下是我迄今为止提出的轻率的想法:

  • 在服务器上创建一个转储,并与我本地机器上前一天晚上的转储同步。那应该只传输文件的更改位吗?

  • 在服务器上创建一个转储,并在本地将其与昨晚的转储进行比较。仅传输该差异。也许它也可以发送到原始转储的 md5,所以我可以确定我正在将差异应用于同一个基本文件。

获得对(大多数)这些服务器的 ssh 访问权限是可能的,但需要让我的客户以相当技术性的要求致电他们的托管服务提供商,这是我宁愿不必要求他们做的事情。如果您可以建议我可以通过 ftp/php 实现的解决方案,则可以加分。

编辑:

@Jacob 的回答提示了一些进一步的谷歌搜索,这导致了这个线程:比较两个 MySQL 数据库

这个问题(以多种形式)似乎很常见。大多数需求,以及因此的大多数工具,似乎都集中在使模式保持最新而不是数据上。此外,大多数工具似乎都是商业和 GUI。

到目前为止,最好看的选项似乎是来自 Percona Toolkit 的pt-table-sync,尽管在 OSX 上设置它看起来可能很痛苦。

我现在正在下载Navicat进行测试。我在 OSX 上运行,但它是一个商业 GUI 程序。

4

1 回答 1

0

我认为设置它的最有效方法是使用 rsync 备份文件是通过使用 rsync 每晚运行,通过将昨天的备份同步到今天的备份然后运行当天的 rsync 来进行增量备份。在备份不同的网站方面,我会考虑将站点作为从站,使用复制器功能备份到您的服务器(主站),这将允许您保持所有数据库的最新状态并进行备份

http://dev.mysql.com/doc/refman/5.0/en/replication.html

于 2012-08-25T06:52:55.673 回答