LVM-snapshot:基于逻辑卷快照备份
lvn本身不做备份,基于lvn做备份,仅能够保存快照后在原件数据
对于mysql配置文件,已经于mysql相关的OS配置文件在每次修改后都应该直接备份
快照备份器请求全局锁:
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 (转载请注明本文出处和本章链接)