linux 快照卷原理,LVM-snapshot基于逻辑卷快照备份

LVM-snapshot:基于逻辑卷快照备份

lvn本身不做备份,基于lvn做备份,仅能够保存快照后在原件数据

对于mysql配置文件,已经于mysql相关的OS配置文件在每次修改后都应该直接备份

5c1967c5325842cec010c6abd3e07965.gif

快照备份器请求全局锁:

MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;

Query OK, 0 rows affected (0.00 sec)

如果是innodb则不同

1,myisa在执行fush时会将数据直接到磁盘,innodb执行时可能在事务日志中仍然存在数据,并未同步到磁盘,因此,事务日志跟数据文件必须在同一个卷上,否则数据完整无法保证

2,创建快照之前,请求mysql全局锁,在快照创建完成后释放锁

3,请求全局锁完成之后,做一次日志滚动:做二进制日志文件及记录事件位置

1,锁表

FLUSH TABLES WITH READ LOCK;

滚日志

FLUSH LOGS;

2,查看事件位置

SHOW MASTER STATUS;

将master status位置保存

mkdir /backup/

mysql -e 'show master status' >backup/binlog.pos

3,创建快照卷

对/dev/myvg/mydata,创建100M大小,名称为mydata-snap的快照,

lvcreate -L 100M -s -n mydata-snap -p r /dev/myvg/mydata

4,释放全局锁

UNLOCK TABLES;

5,将快照挂载到mnt下

mount /dev/myvg/mydata-snap /mnt -o ro

6,复制data/ 到backup下

cp data/ /backup/data-2015-9-4

cp /mnt/data/ /backup/data-2015-9-4

7,备份完成,删除快照卷

先卸载

umount /mnt

删除快照卷

lvremove /dev/myvg/mydata-snap

备份完成!

备份还原

***二进制日志需要存在

1,恢复将backup/backup/data-2015-9-4/*复制到/mydata/data -a 即可

2,打开备份的master status文件从备份那一刻开始

mysqlbinlog --start-position=369 /mydata/binlog/master-bin.000009 | mysql

3,还原数据后,修改权限及属主属组等,并启动mysql

其他

mylvbackup:

mylvbackup是一个perl脚本,快速基于lvm备份的mysql

除非另有说明,否则本站上的内容根据以下许可进行许可: CC署名-非商业性使用-相同方式共享4.0国际许可协议4.0进行许可

本文作者:www.linuxea.com for Mark

文章链接:http://www.linuxea.com/1051.html (转载请注明本文出处和本章链接)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值