![对大型数据库 (MyISAM / InnoDB) 进行 MySQL 备份的最佳方法](https://linux22.com/image/513103/%E5%AF%B9%E5%A4%A7%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%20(MyISAM%20%2F%20InnoDB)%20%E8%BF%9B%E8%A1%8C%20MySQL%20%E5%A4%87%E4%BB%BD%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95.png)
目前我们有一个强大的 MySQL 数据库,用于运行几个基于 Django 的高流量网站以及一些规模相当大的电子商务网站。因此,我们拥有大量使用 InnoDB 和 MyISAM 表的大型数据库。
不幸的是,我们最近由于流量太大而遇到了障碍,因此我设置了另一台主服务器来帮助减轻读取/备份的压力。
现在,我只是使用带有几个参数的 mysqldump,事实证明它很好……直到现在。显然,mysqldump 是一种缓慢而快速的方法,但我认为我们已经不再使用它了。我现在需要一个好的替代方案,并且一直在研究使用 Maatkitsmk-并行-转储实用程序或 LVM 快照解决方案。
简洁的简短版本:
- 我有一个相当大的 MySQL 数据库需要备份
- 当前使用 mysqldump 的方法效率低下且缓慢(导致问题)
- 查看诸如 mk-parallel-dump 或 LVM 快照之类的内容
任何建议或想法都将不胜感激 - 因为我必须重新做我们正在做的事情,所以我宁愿以正确/最有效的方式完成它:)。
答案1
答案2
备份- 至少对于 innodb 来说。
答案3
解决此问题的最常见方法是设置另一台 MySQL 服务器(甚至可以在同一台机器上),并运行主/从复制。然后,您可以在从服务器上执行备份,而不会对主服务器产生任何影响。
答案4
如果您正在运行跨应用程序共享的数据库复制,那么似乎有一个显而易见的问题:您是否可以通过将数据库服务器专用于应用程序来提高许多事物(包括备份)的性能。共享很好,直到它不再好。