42

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

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

5 回答 5

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

为避免数据库处于不一致状态,您可以关闭 MySQL 或在备份前使用 LOCK TABLES 然后 FLUSH TABLES。第二种解决方案要好一些,因为 MySQL 服务器在备份期间将保持可用(尽管是只读的)。

于 2010-03-20T09:54:19.803 回答
6

只有先关闭数据库,这种方法才能安全地工作。否则,您之后很可能会陷入不一致的状态。首先使用 /etc/init.d/mysql 停止命令。然后,您可以在备份完成后重新启动它。

于 2010-03-20T09:57:57.730 回答
3

只要您先关闭MySQL服务器并使用完全相同的版本来检索“备份”就可以了。否则不是。

于 2010-03-20T09:54:03.067 回答
1

有关这 2 种策略的完整讨论,您需要阅读以下内容:https ://dev.mysql.com/doc/refman/5.5/en/backup-types.html

目前最好的免费和开源解决方案似乎是 Percona 的:http ://www.percona.com/software/percona-xtrabackup

于 2014-04-20T20:16:41.017 回答
0

我会坚决反对。

根据我的经验,备份/恢复原始 mysql 数据文件只能在相同的操作系统/服务器版本上使用。它不适用于具有相同服务器版本的跨平台(例如 ubuntu/macos),也不适用于同一平台上的 mysql 服务器版本不同。

Percona MySQL 发行版的 Percona XtraBackup (innobackupex)将让您进行实时和差异 mysql 备份,并为您提供可以通过复制到/var/lib/mysql/. 您需要运行 Percona Server for MySQL 才能使用所有这些。

于 2019-06-02T21:27:56.197 回答