LVM快照写时复制的特性(copy-on-write,COW)
写时复制快照在快照时间点之后,没有物理数据复制发生,仅仅复制了原始数据物理位置的元数据。因此,快照创建非常快,可以瞬间完成。然后,快照副本跟踪原始卷的数据变化(即原始卷写操作),一旦原始卷数据块发生写操作,则先将原始卷数据块读出并写入快照卷,然后用新数据块覆盖原始卷。这样我们访问快照卷上的数据仍旧是写操作前的,可以保证我们备份数据的一致性。
原理图:
设计一个实验,使用LVM快照备份数据,然后删除Mysql所有数据文件,最后使用快照恢复数据库。
1.创建LVM快照
2.删除Mysql所有的数据文件
3.停止Mysql数据库实例
4.数据还原
5.数据恢复
1.创建LVM快照
给vg_lihuilin_-lv_root逻辑卷创建一个名为mysql-snap的快照。其中vg_lihuilin_-lv_root挂载为"/"。
2.删除Mysql所有数据文件,模拟一个事故
可以看到Mysql的数据文件已经全部删除,但是快照中的文件还在。可以恢复数据库到快照创建的时间点(point-in-time)。
3.停止Mysql数据库实例
因为数据库的数据文件已经被删除,所以先停止数据库实例。
4.数据还原
将快照中的文件恢复到Mysql的数据目录。
5.数据恢复
重新启动Mysql实例,innodb引擎会进行实例恢复。
每次备份之后,应该删除快照,减少IO操作。
参考:
http://blog.csdn.net/dba_waterbin/article/details/12720441
http://asram.blog.51cto.com/1442164/313073
http://vbird.dic.ksu.edu.tw/linux_basic/0420quota.php#lvm_snapshot
转载于:https://my.oschina.net/u/2427170/blog/701370