我想在专用服务器上实现MySQL备份策略。
它有多个数据库,加起来的总容量约为150 is。其中大部分都是针对其中一个数据库的。
数据库是混合引擎MyISAM和InnoDB (计划是长期的,但短期内是不可能的)。
寻找可供使用的策略/软件的建议。
理想的MySQL备份过程将实现以下目标。
我不是一个专业的sys/db管理员,所以我会感谢社区的学习建议。到目前为止我有一些建议。
荷兰备份有一个mysqllvm选项。
它通过拍摄MySQL数据目录的完整快照来工作。它锁定非常短的时间,而快照是采取和一致的。
它实现了目标1和2。
目标3,没那么.只有恢复整个数据目录是可能的。每个数据库恢复都是不可能的,更不用说每个表了。
荷兰备份有一个mysqldumplvm选项。
这就实现了目标1和2。
目标3,没那么.它只允许从.sql转储中恢复每个数据库,由于数据库的大小,恢复到虚拟数据库需要花费几个小时的时间,只需提取一个表。在这里,磁盘空间可能开始成为一个问题。
发布于 2014-03-03 12:41:50
我想你知道目标3与目标1相矛盾。
显而易见的解决方案是在镜像文件系统上实现数据存储。当您想要进行备份时,停止DBMS、刷新写缓冲区、破坏镜像并重新启动DBMS,然后将镜像文件系统挂载到其他地方,然后使用该副本启动DBMS的第二个实例,并将其用于备份。
(虽然您可以在不关闭DBMS的情况下破坏镜像,但是您必须修复数据,并且没有一致的快照)。
或者,将复制群集设置到第二台计算机,并从另一个节点执行备份。
(使用文件系统快照可能是另一种方法,但LVM或BTRFS的性能开销很大)。
发布于 2014-03-03 12:44:48
您还可以考虑Percona XtraBackup (http://www.percona.com/software/percona-xtrabackup),尽管它与MyISAM不兼容
编辑:实际上它与MyISAM兼容
发布于 2014-03-03 14:22:03
如果使用Xtrabackup和InnoDB,则可以实现1、2和3。对于MyISAM来说,不可能获得所有这三种情况。
https://serverfault.com/questions/579457
复制相似问题