复制/ var / lib / mysql是mysqldump的一个很好的替代方案吗?

时间:2010-03-20 09:17:21

标签: mysql backup database-backups

由于我正在对我的整个debian系统进行完整备份,所以我在想是否有/var/lib/mysql目录的副本是使用mysqldump转储表的可行替代方法。

  • 是该目录中包含的所有信息吗?
  • 可以在另一个mysql中导入单个表吗?
  • 在(可能稍微)不同的mysql服务器版本上恢复这些文件时会出现问题吗?

5 个答案:

答案 0 :(得分:30)

  • 如果表格正在使用MyISAM(默认)引擎,则为是。不是如果它使用InnoDB。
  • 可能不是,如果有,你只需要执行mysql_upgrade来修复它们

为避免数据库处于不一致状态,您可以在备份之前关闭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才能使用所有这些功能。