关于使用LVM快照做mysql数据库备份的疑问

63 views
Skip to first unread message

TheBurn

unread,
Jan 30, 2015, 1:49:16 AM1/30/15
to sh...@googlegroups.com
各位好,这几天琢磨mysql的备份问题,我现在的情况是等业务稳定后数据总量几乎不变,个别字段修改而已,不多,主要是用于查询,所以我选择了MyISAM的引擎(即便初期添加数据的时候并发量也不大),然后现在要做数据备份

我现在查到的有如下几个方案(商业的软件我没看)
1:锁表,mysqldump, 解锁 。 这个在单机环境中,似乎是折腾量最少的了,但是不能写操作,难道每次操作都要凌晨? T_T 我估计会被support砍死
2:双机,master-slave。 在slave上反正随便折腾了,方法一也好,停机直接复制也好, 要多加一个机器,不知道最终用户肯不肯阿
3:LVM快照,LVM快照我看了很多人推荐,似乎扇贝也在用这个,确实从COW的原理来看几乎是秒存。
     但是很多教程在做快照前,都要做一个 FLUSH TABLES WITH READ LOCK 的动作FLUSH TABLES 这个好理解,
     加上READ LOCK 这个我有点不明白了,因为有了LVM的快照用了COW,即便在做快照的期间,有人写了数据库了,
     新增加的部分是不会写入到快照里面才对,然后挂载快照,tar个包 ,删除快照

说了那么多,主要就是想问,加上READ LOCK  这个操作是否一定有必要(当然严格一点加上是最保险了),如果不加这个锁,LVM快照在什么情况下会导致数据备份有问题


也欢迎各位提供一些其他的备份思路,或者在实际环境中使用过的备份方案~~谢谢!

第一次在SHLUG发帖子。有点小激动.....

DaboD

unread,
Jan 30, 2015, 10:41:06 AM1/30/15
to sh...@googlegroups.com
非專業, 但好奇 google 了一下, 這頁簡單說明了這幾個指令的作用

猜想目的應該是確保目前所有變更請求都己結束并完成磁碟的寫入, 才不會備份在不一致的狀態. flush 了但不取得 read lock, 那後序的變更請求會接著進來, 有可能造成的問題是, snapshot 中包含了做到一半的 transaction, restore 時 db 會去做 rollback 的動作, 資料正確性無法保證. 

Chaos Eternal

unread,
Feb 1, 2015, 2:43:51 AM2/1/15
to sh...@googlegroups.com
理论上说, LVM的Snapshot是consistent的,所以直接做snapshot然后备份就可以了
> --
> -- You received this message because you are subscribed to the Google Groups
> Shanghai Linux User Group group. To post to this group, send email to
> sh...@googlegroups.com. To unsubscribe from this group, send email to
> shlug+un...@googlegroups.com. For more options, visit this group at
> https://groups.google.com/d/forum/shlug?hl=zh-CN
> ---
> 您收到此邮件是因为您订阅了Google网上论坛上的“Shanghai Linux User Group”群组。
> 要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到shlug+un...@googlegroups.com
> 要查看更多选项,请访问https://groups.google.com/d/optout

Terry Wang

unread,
Feb 4, 2015, 6:41:26 PM2/4/15
to sh...@googlegroups.com
LVM 的 snapshot 对 I/O 性能的影响是非常大的,可达30%-40%的额外开销,强烈不推荐使用。

原因简单说是因为 LVM 之上的文件系统(比如 Ext4)一般都不是 Copy on write 的,所以 1. 无法意识到 block device 层的 CoW 操作 2. I/O 还得通过 LVM 这层代理实现

要利用快照做备份的话还是用 Copy on write 文件系统,比如 Btrfs / ZFS 你们懂的。

一定要用 LVM 快照的话记得 --chunksize 越大越好。

EOF

Chaos Eternal

unread,
Feb 4, 2015, 8:06:52 PM2/4/15
to sh...@googlegroups.com
测过么?

我测过,损失并没有那么大,当然测的不全面。而且备份完了你就可以把snapshot删掉了。

liyaoshi

unread,
Feb 4, 2015, 8:10:02 PM2/4/15
to sh...@googlegroups.com
敢不敢放测试数据

您收到此邮件是因为您订阅了 Google 网上论坛的“Shanghai Linux User Group”群组。

Chaos Eternal

unread,
Feb 4, 2015, 9:00:11 PM2/4/15
to sh...@googlegroups.com
有机会再试试。老李你帮我看看那个 beagle board 虚拟机的问题?

TheBurn

unread,
Feb 5, 2015, 10:55:16 PM2/5/15
to sh...@googlegroups.com
LVM 的快照确实会影响I/O性能,有个测试如下 http://www.percona.com/blog/2009/02/05/disaster-lvm-performance-in-snapshot-mode/

因为这里用LVM只是为了保证数据的consistent,一旦快照结束后,打包备份,就删除快照了

在 2015年2月5日星期四 UTC+8上午7:41:26,Terry Wang写道:

liyaoshi

unread,
Feb 7, 2015, 4:07:07 AM2/7/15
to sh...@googlegroups.com
看晚了,哪个?

Chaos Eternal

unread,
Feb 7, 2015, 4:58:40 AM2/7/15
to sh...@googlegroups.com
有没有人玩 beagle board 用qemu-linaro模拟的,我在上面跑 http://armpit.sourceforge.net/
但是一点反应都没有,不知道怎么调试。

liyaoshi

unread,
Feb 7, 2015, 5:02:41 AM2/7/15
to sh...@googlegroups.com
建议
300rmb
淘宝解决

Chaos Eternal

unread,
Feb 8, 2015, 9:17:19 PM2/8/15
to sh...@googlegroups.com
没米,药师你赞助一个吧

liyaoshi

unread,
Feb 9, 2015, 5:02:14 AM2/9/15
to sh...@googlegroups.com
cao yiling 那里一大堆

你下次聚会跟他买一个吧

你只要个串口跟电源其实就够了
Reply all
Reply to author
Forward
0 new messages