3

我一直在阅读有关通过使用 lvm 备份 mysql 我知道您创建一个 lvm 分区并为 mysql 分配特定大小,为快照留出足够的空间。

我读到它的优点是备份非常快。

有什么需要注意的陷阱或缺点吗?

谢谢

4

2 回答 2

5

在启用 LVM 快照的情况下运行可能会导致 I/O 性能下降多达 6 倍。

http://www.mysqlperformanceblog.com/2009/02/05/disaster-lvm-performance-in-snapshot-mode/

我建议使用Percona XtraBackup作为更好的热备份工具(免责声明:我为 Percona 工作)。

于 2012-02-06T18:57:12.447 回答
2

在某些情况下,LVM 快照对于 InnoDB 来说非常可怕。为什么?

如果您禁用了innodb_file_per_table,则 ibdata1 将包含所有内容及其祖母。ibdata1中有什么?四件事:

  • 数据页
  • 索引页
  • 元数据(例如 TableSpave ID 列表)
  • MVCC 数据

如果您尝试在关闭 innodb_file_per_table 的重写入数据库环境中执行 LVM 快照,那么您可能会自食其果。LVM 快照需要事先很好地合并 ibdata1 文件。

我最近做了一个实验,如下:

我雇主的网络托管公司的一个客户的 MySQL 设置存在以下问题:

  • innodb_file_per_table 关闭
  • 1.4TB ibdata1
  • ibdata1 内只有 29GB 可用空间
  • ext3 文件系统(单个文件大小限制为 2GB,呸)

我想通过将 /var/lib/mysql 文件夹 rsycning 到另一个 DB Server 来设置 MySQL 从站。在没有停机的情况下在 ibdata1 上完成 rsync 需要 42 小时。针对 ibdata1 的第二次 rsync 耗时 84 小时,只发现了 220GB 的更改,并且只完成了 15%。我中止了那个任务。

LVM 快照的性能可能比 rsync 好得多。尽管如此,任何涉及非常大的 ibdata1 的 LVM 快照都会遇到同样的问题。

如果您使用 LVM 快照,请使用以下选项:

  • 选项 01) 使用 innodb_file_per_table。LVM 快照会喜欢你,因为它会处理更小的文件。您还可以永久缩小 ibdata1
  • 选项 02) 使用 MySQL 复制并在从站上做 LVM 快照

使用 MySQL 复制从站,您可以

  • STOP SLAVE;(如果你在 my.cnf 中有 --skip-slave-start)
  • service mysql stop
  • 执行 LVM 快照
  • service mysql start
  • START SLAVE;(如果你在 my.cnf 中有 --skip-slave-start)

这样,这些 LVM 快照问题将永远不会在 Production Master 上出现。

试一试,玩得开心!!!

于 2012-02-06T19:05:34.617 回答