MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)

本文介绍使用LVM快照进行MySQL备份与恢复的方法。强调快照卷的概念及其非备份特性,提供基于LVM快照的备份步骤及注意事项,包括全局锁的获取与释放、日志滚动与标记等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               MySQL的备份和恢复-基于LVM快照的备份(lvm-snapshot)

                                            作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

一.什么是快照卷

  如上图所示,原卷和快照卷可以不一样大,因为快照卷只保存变化中的数据,但是你得提前预估快照卷的存储空间有多大,一旦快照卷存储空间溢出就意味着快照卷的崩溃!快照卷拥有以下特点:
    1>.逻辑卷快照,事实上它本身是一个逻辑卷,但是它仅仅是作为原卷的另外一个访问路径;
    2>.刚刚创建快照卷时,快照卷中是没有任何数据的,所有数据都执行了原卷的数据块,所以此时访问的所有数据都来自于原卷;
    3>.一旦原卷中的数据需要修改,某一数据在修改之前需要把源数据复制到快照卷里进行修改,在快照卷里面存储修改后的内容,这意味着再次之后访问所有的数据一部分来自原卷,一部分来自快照卷。
  总是所述,快照卷是备份吗?答案是否定的,快照卷只是给我们提供了一个能够获得时间一致性的访问通路。所以我们通过快照卷做备份我们得到的时间戳是一致的。

 

二.基于LVM快照的备份注意事项
1.事务日志跟数据文件必须在同一个卷上;
2.创建快照卷之前,要请求mysql的全局锁,在快照创建完成之后释放锁;
3.在请求全局锁完成之后,做一次日志滚动;做二进制日志文件及位置标记(手动进行);

 

三.备份步骤步骤
1.请求全局锁,并滚动日志
  flush tables with read lock
  flush logs
2.做二进制日志文件及位置标记(手动进行)
  #mysql -pyinzhengjie -e ‘show master status ’ > /path/to/somefile
3.创建快照卷
  #lvcreate -L -s -n yinzhengjie-mysql-snmap -p r /path/to/some_lv
4.释放全局锁
  #unlock tables
5.挂载快照并备份
  #cp
6.备份完成之后,删除快照卷
  #lvremove
  当然你可以用 mylvbackup:perl脚本,快速基于LVM备份mysql。需要你提前配置好perl环境。
 
四.恢复时的方式
1.二进制日志保存好
  提取备份之后的所有时间至某sql脚本中
2.还原数据,修改权限及属主属组等,并启动mysql
3.做即时点还原
 
 
 
 
 
 
 
 
 
 
 
 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值