由于我正在对整个 debian 系统进行完整备份,因此我在考虑是否拥有/var/lib/mysql
目录副本是使用 mysqldump 转储表的可行替代方案。
- 该目录中是否包含所有需要的信息?
- 可以在另一个mysql中导入单个表吗?
- 在(可能稍微)不同的mysql服务器版本上恢复这些文件时会出现问题吗?
由于我正在对整个 debian 系统进行完整备份,因此我在考虑是否拥有/var/lib/mysql
目录副本是使用 mysqldump 转储表的可行替代方案。
为避免数据库处于不一致状态,您可以关闭 MySQL 或在备份前使用 LOCK TABLES 然后 FLUSH TABLES。第二种解决方案要好一些,因为 MySQL 服务器在备份期间将保持可用(尽管是只读的)。
只有先关闭数据库,这种方法才能安全地工作。否则,您之后很可能会陷入不一致的状态。首先使用 /etc/init.d/mysql 停止命令。然后,您可以在备份完成后重新启动它。
只要您先关闭MySQL服务器并使用完全相同的版本来检索“备份”就可以了。否则不是。
有关这 2 种策略的完整讨论,您需要阅读以下内容:https ://dev.mysql.com/doc/refman/5.5/en/backup-types.html
目前最好的免费和开源解决方案似乎是 Percona 的:http ://www.percona.com/software/percona-xtrabackup
我会坚决反对。
根据我的经验,备份/恢复原始 mysql 数据文件只能在相同的操作系统/服务器版本上使用。它不适用于具有相同服务器版本的跨平台(例如 ubuntu/macos),也不适用于同一平台上的 mysql 服务器版本不同。
Percona MySQL 发行版的 Percona XtraBackup (innobackupex)将让您进行实时和差异 mysql 备份,并为您提供可以通过复制到/var/lib/mysql/
. 您需要运行 Percona Server for MySQL 才能使用所有这些。