由于我正在对我的整个debian系统进行完整备份,所以我在想是否有/var/lib/mysql
目录的副本是使用mysqldump转储表的可行替代方法。
答案 0 :(得分:30)
为避免数据库处于不一致状态,您可以在备份之前关闭MySQL或使用LOCK TABLES,然后使用FLUSH TABLES。第二种解决方案更好一点,因为MySQL服务器在备份期间仍然可用(尽管只读)。
答案 1 :(得分:4)
如果先关闭数据库,这种方法只能安全地工作。否则你最终可能会以不稳定的状态结束。首先使用/etc/init.d/mysql stop命令。然后,您可以在备份后重新启动它。
答案 2 :(得分:3)
只要先关闭MySQL服务器并使用完全相同的版本来检索“备份”,这就完全可以了。否则就不是。
答案 3 :(得分:1)
要完整讨论这两种策略,您需要阅读:https://dev.mysql.com/doc/refman/5.5/en/backup-types.html
目前最好的免费和开源解决方案似乎是Percona的:http://www.percona.com/software/percona-xtrabackup
答案 4 :(得分:0)
我坚决反对。
根据我的经验,备份/还原原始mysql数据文件只能在相同的OS /服务器版本上使用。不能在具有相同服务器版本的跨平台(例如ubuntu / macos)上运行,也不能在相同平台上使用不同的mysql服务器版本。
来自Percona MySQL发行版的 Percona XtraBackup (innobackupex)将允许您进行实时和差异mysql备份,并为您提供可以通过复制到/var/lib/mysql/
来还原的备份文件。您需要运行Percona Server for MySQL才能使用所有这些功能。