有几种方式可以恢复这种历史数据的快,用存储级的快照技术是最快速的。
可以使用lvm的快照, 或者zfs的快照。
下面是zfs 的快照的操作方法。
linux下运行zfs的性能相对比较差,用它做生产环境不合适,但作备份还是不错的。
列出卷以及快照
zfs list
tank/mysql 52.1G 1.36T 13.4G /mysql
tank/mysql@20090901 0 - 13.1G -
tank/mysql@20091001 235M - 11.9G -
tank/mysql@20091101 226M - 12.1G -
对20090901的 tank/mysql 做个clone tank/20090901
zfs clone tank/mysql@20090901 tank/20090901
然后浏览/tank/20090901 就可以看到数据库的文件, 如果是MyISAM格式的数据库,可以直接复制里面的目录出来就行了。
cp -a /tank/20090901/db1 /var/lib/mysql/db1_20090901
zfs clone tank/mysql@20091001 tank/20091001
cp -a /tank/20091001/db1 /var/lib/mysql/db1_20091001
zfs clone tank/mysql@20091101 tank/20091101
cp -a /tank/20091101/db1 /var/lib/mysql/db1_20091101
然后在数据库 /var/lib/mysql 就多了3个库 db1_20090901 db1_20091001 db1_20091101