如果我以60秒的间隔在mysqldump --single-transaction后台运行一个cron作业,那么是否存在性能问题?在倾销过程中,我的原始数据库会继续正常工作吗?
如果我将时间间隔缩短到5秒(为了进行实时更新),这会对我的数据库服务器的性能产生很大影响吗?
另外,mysqldump命令是如何生成sql文件的?(在执行命令时,它是一次又一次地从零开始生成语句,还是只在执行mysqldump命令时生成语句?)
发布于 2015-05-23 14:17:05
从这里开始,只使用mysqldump表对MySQL数据库进行热备份的完整InnoDB命令是:(来自这里)。
mysqldump -uuser -ppass --single-transaction --routines --triggers --all-databases > backup_db.sql除了@TrentLloyd提到的企业解决方案之外,还有一个来自珀科纳的F/LOSS解决方案(他们是MySQL世界的大人物)。我会毫不犹豫地推荐Percona的任何工具,我会把它放在我的清单上,以便在我所使用的任何MySQL系统上进行测试。
他们提供的是Percona XtraBackup,它具有增量备份功能。文档是这里。
您也可能对LVM快照感兴趣--这不是我目前熟悉的技术,但它在我的待办事项清单上(就像很多东西:-)。如果您熟悉所有关于安装逻辑卷&c.的内容,您可能会对此感兴趣。
我同意@TrentLloyd的观点,即定期进行完全备份(在如此短的时间间隔内)是没有意义的--您的系统将无法在这样的资源不断流失的情况下完成任何真正的工作。
为了完整起见,您可能需要查看以下选项:(信用到期时,我从这里 :-)“窃取”了这个图像)

最后,有无数的shell (主要是bash)脚本存在。谷歌的"mysql增量备份bash脚本“(或类似的)会让你摆脱这些。其中最好的(也是最受欢迎的)之一是自动备份,但您可能希望尝试其他的任何/全部/部分。
由于bash现在可以在Windows上本地使用(传统上在MySQL备份方面很差),这些可能值得对该操作系统的用户进行调查。
automysqlbackup的一个有趣的变体(免责声明--我还没有使用它)是一个脚本,它将执行增量备份,这将被发现为这里。
发布于 2015-05-23 07:47:32
在这些时间间隔内运行完整的备份是没有意义的。您要做的是在较小的时间间隔(每天、每周)返回一个完整的mysqldump,其中包含二进制日志位置(主数据),然后使用二进制日志回滚到您想要的时间点。
请参阅:https://dev.mysql.com/doc/refman/5.6/en/point-in-time-recovery.html
还有一个MySQL企业专用产品,它可以帮助在没有二进制日志的情况下进行热备份和热增量备份:http://www.mysql.com/products/enterprise/backup.html
https://dba.stackexchange.com/questions/102334
复制相似问题