2012-02-06 101 views
2

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

我读到的好处是备份非常快。

是否有任何缺陷要注意或缺点?

感谢

回答

5

使用LVM快照运行启用可导致I/O性能降低高达6倍。

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

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

+0

感谢您的文章。没有遇到那个。很有意思。然而,关于备份,我正在寻找一些免费的东西 – Thomas 2012-02-06 20:06:29

+0

@Thomas,Percona XtraBackup是免费的,根据GNU公共许可证授权。 Percona是开源免费软件的倡导者。 – 2012-02-06 21:01:02

+0

嗨比尔。对不起,我的拉丁评论。我的错。肯定会考虑你的解决方案。再次感谢 – Thomas 2012-02-07 12:02:28

2

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

如果您有innodb_file_per_table禁用,ibdata1将包含所有内容和它的祖母。什么生活在ibdata1?四件事情:

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

如果你想在一个重链执行LVM快照用innodb_file_per_table写入数据库环境,你可能会在脚下拍摄自己。 LVM快照需要事先将ibdata1文件妥善保存。

我最近如下而进行的试验:

客户端在我的雇主的网络托管公司拥有自己的MySQL安装了以下问题:

  • innodb_file_per_table关闭
  • 1.4TB ibdata1中
  • ibdata1中只有29GB的空间
  • ext3文件系统(单个文件大小限制2GB,yuck)

I wanted to setup a MySQL Slave by rsycning the /var/lib/mysql folder to another DB Server。在没有停机的情况下在ibdata1上完成rsync时,耗时42小时。针对ibdata1的第二个rsync花费了84个小时,仅发现了220GB的更改,仅仅完成了15%。我放弃了这个使命。

LVM快照可能会更好地执行rsync。尽管如此,任何涉及非常大的ibdata1的LVM快照都将受到相同的问题影响。

如果你使用LVM快照去,请使用这些选项:

  • OPTION 01)使用innodb_file_per_table。 LVM快照会爱你,因为它会处理较小的文件。 You can also permanently shrink ibdata1
  • OPTION 02)在从使用MySQL复制,做LVM快照

随着MySQL的复制从,你可以

  • STOP SLAVE;(如果你有--skip-从开始我.CNF)
  • service mysql stop
  • 执行LVM snpshot
  • service mysql start
  • START SLAVE;(如果你有在my.cnf --skip-从开始)

这样一来,这些LVM快照问题将永远不会看到一个制作师傅出头之日。

试一试,玩得开心!

+0

伟大的洞察力。谢谢。 – Thomas 2012-02-06 19:57:04

+0

我认为LVM快照的重点在于从设备(或主设备)不需要以任何方式停止。只有所有的表都通过读锁定刷新到磁盘,此时可以创建LVM快照并释放读锁。是不是这样,罗兰多? – rinogo 2016-12-28 20:08:23