LVM:使用逻辑卷的快照功能备份,几乎热备
前提:
1.数据文件要在逻辑卷上;
2.此逻辑卷所在组必须有足够空间使用快照卷;
3.数据文件和事物日志要在同一个卷上。
步骤:
1.打开会话,施加读锁,锁定所有表
mysql>flush tables with read lock;
mysql>flush logs;
2.通过另一个终端,保存二进制日志文件及相关位置信息
$mysql -uroot -p -e ‘show master status\G;’ > /path/to/master.info
3.创建快照卷
#lvcreate -L 50M -s -p r -n lv_name /path/to/source_lv
-s|--snapshot:指定创建快照
[-p|--permission {r|rw}]:设定创建的快照具有被读或读写特性
-n:指定快照名字
4.释放锁
mysql>unlock tables;
5.挂载快照卷,备份
$mount /path/to/lv_name /backup/fullbak
$cp -a /mysql/* /backup
6.删除快照卷
7.增量备份二进制日志
$cat /path/to/master.info;查看当前二进制日志位置
$mysqlbinlog --start-position=107 mysql-bin.000005 >/backup/bak.sql
当一个事务跨越不同的二进制文件时,开启通过时间备份--start-datetime
$mysqlbinlog --start-datetime=’2016-05-06 14:55:34’ mysql-bin.00005 mysql-bin.000006 > /backup/bak-`date +%F-%H-%M-%S`.sql
还原:
$cp -a /backup/fullbak /mysql 注意mysql目录下的文件属主是mysql
$/etc/init.d/mysqld restart
mysql>set sql_log_bin=0;关闭二进制日志
mysql>source /backup/bak-`date +%F-%H-%M-%S`.sql;还原数据
mysql>set sql_log_bin=1;