LVM快照

前提:LVM是在LV的基础上建立,要求你的数据库必须在逻辑卷这个分区上,否则没有用。
当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data)。

快照原理

当我们对一个数据库创建一个快照时,仅仅备份的是原始卷里数据的元数据,而在我们创建快照的时候会生成一个对应的原始卷位示图,记录原始卷的数据变化。
原始卷进行写操作
1.先查看位示图看对应数据页是否已被使用,如果没有使用,则先把数据页里面的原始数据拷贝到对应的快照卷的位置。
2.位示图对应数据页位置置为1(表示已经修改数据)
3.可以直接修改数据
读取快照内容
先看位示图中对应数据页是否已被置位,如果已被置位,则读取快照卷的数据。否则根据对应的地址来读取原始卷的数据
示意图
在这里插入图片描述

快照备份步骤

1.对数据库加全局读锁(防止创建快照过程中有数据写入)

flush tables with read lock;

2.创建快照

lvcreate -L 500M -s -n snap-lv /dev/myvg/mylv

注意:由于快照是从卷组中获取存储空间你,要求卷组中必须有可用的空间,/dev/myvg/mylv是指对这个逻辑卷进行快照。而快照snap-lv是在/dev/myvg的目录下面

3.创建快照之后立马释放锁

unlock tables; #释放锁

4.挂载快照设备,并对数据库中的文件和目录进行打包压缩
由于是复制原始卷的元数据,所以不用格式化了,原始卷已经是ext4的文件系统。

mount /dev/myvg/snap-lv /mnt #/mnt 最好是空目录
tar -zcvf /data/back/mysql.tar.gz  /mnt/*   #打包,在打包过程中对数据进行拷贝备份

5.备份之后,立马卸载快照防止达到快照空间,使快照失效。严重时破坏原始卷。

umount /mnt #卸载设备

6.移除快照设备。

lvremove -f /dev/myvg/snap-lv 

猜你喜欢

转载自blog.csdn.net/wana_one_gy/article/details/82813377
今日推荐