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

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

1 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2016-01-22分类: Mariadb

标签: xtrabackup

发表评论