我正在处理几个增长速度非常快的数据库。现在大约12GB,未来几个月它将超过15GB。在这种情况下,我只在cronjob中运行传统的备份过程 mysqldump 。我发现整个数据库的备份和恢复时间(小时,甚至几天)都有显着延迟。知道物理备份比逻辑更快,我找到了这两个,但由于一些限制和公司政策而无法实现这些。
Percona XtraBackup:Percona专门为Linux环境提供此工具。并非所有公司都会同意使用第三方工具,即使它是开源的。
当数据库混合使用Innodb
和MyISAM
时,请为大数据库建议任何其他更好的备份和恢复机制。在快照
答案 0 :(得分:1)
首先我会尝试使用" - 单一交易"使用mysqldump,只要你的所有表都是innodb,并且你在转储期间不修改表结构。这将尝试从单个时间点转储,但只有在不锁定表的情况下才能执行转储。
我还没有尝试过xtrabackup,但它看起来也会做你想要的。
你也可以尝试设置mysql复制并从slave转储。
最后是LVM快照但需要更多工作。
答案 1 :(得分:1)
我个人使用过Percona XtraBackup工具集。它完成一些简单的过程,以便在完成正常存储时获取innodb binlog中的所有已提交数据。阅读MySQL Enterprise Backup也可以做到这一点。
可以使用Percona XtraBackup和MySQL Enterprise进行增量备份/快照,如果这是您正在寻找的内容。
使用只读从站,可以保持读锁的分离。如果使用mysql免费工具进行备份,这将使您的锁保持在主读取上。
如果你有一个奴隶,另一个选择是你可以关闭奴隶并将数据rsync到某处进行备份。