MySQL增量备份和数据库复制

我们有一些服务器运行一个MySQL数据库的tomcat应用程序。 这些服务器位于不同的城市,我们的客户在本地使用networking应用程序。

在这些服务器上,crontab作业每天运行两次,并对数据库进行完全备份,并将此转储(SCP)发送给我们的中心办公室的服务器。 然后,我们把这个垃圾堆放在当地的数据库,如果发生紧急情况,我们的客户可以通过互联网继续使用这个应用程序。

问题是每天转储越来越大,传输这些数据并不是那么简单,所以我们正在寻找一些增量备份解决scheme和一个复制方法。

你能给出一些关于如何做到这一点的想法吗? 还有另一种解决scheme比我们想要做的更好吗?

谢谢。

保持以前的转储和使用rsync甚至更好, rdiff-backuphttp://www.nongnu.org/rdiff-backup/ )通过ssh而不是普通的scp。

除了使用rsync之外,另一个select是将每个普通数据库的mysql复制configuration为主数据库,将办公室中的数据库configuration为每个主数据库的从属数据库。 你可以在这里阅读mysql的文档。 。 如果您想保留scp / rsync样式的备份,您可以使用bzip或其他方法将压缩添加到备份中。 也有zmanda ,这将允许备份,而不需要运行你想要备份的每个系统的奴隶。

另一个可能的select是使用二进制日志,但不是因为syneticon-dj列出的原因而进行任何实际的复制。 保留一两天的二进制日志(它们可能很大),并使用mysqlbinlog工具来获取特定的时间段,并在一天中重放更改到中央服务器上。

有一些性能和其他限制,如交易,但它可能适用于您的设置。 您还将拥有一个很好的审计线索,以查看“DELETE FROM”如何发生的确切时间,并可以将其从重播中删除,find相关负责人等。

你显然希望保留完整的备份,但是如果你担心中央保持最新状态,那么夜间完整备份同步/二进制文件可能是最不密集的,你仍然可以使用S19N的rdiff备份build议夜间。