使用LVM快照实现对mysql数据库的备份
2015-09-20 12:47
489 查看
数据库备份有多种方法,今天介绍下使用lvm的快照功能完成对mysql数据库的备份。lvm在对数据进行备份的时候可以提供近乎热备的方式,它的工作机制是这样的:在某一时刻对数据库所在目录创建快照卷,由此,通过快照卷访问的数据就是保存快照那一刻时的数据,而后将快照卷中的数据拷贝至其他目录即可,之所以称他为近乎热备是因为在创建快照的时候需要对数据库施加读锁,在这期间数据库不能进行写操作。
使用lvm备份数据库的前提
1,数据文件必须在lv中
2,此逻辑卷所在的卷组必须有足够的空间使用快照卷
3, 数据文件和事务日志要在同一个逻辑卷上
这里以数据库mytest为例实现备份
1,打开mysql会话,施加读锁,滚动二进制日志
使用lvm备份数据库的前提
1,数据文件必须在lv中
2,此逻辑卷所在的卷组必须有足够的空间使用快照卷
3, 数据文件和事务日志要在同一个逻辑卷上
这里以数据库mytest为例实现备份
mysql> use mytest; mysql> show tables; +------------------+ | Tables_in_mytest | +------------------+ | students | +------------------+ 1 row in set (0.00 sec)
mysql> select * from students; +----+-------+-----+--------+ | id | Name | Age | Gender | +----+-------+-----+--------+ | 1 | Tom | 20 | M | | 2 | Jerry | 23 | F | | 3 | Sara | 19 | F | +----+-------+-----+--------+ 3 rows in set (0.09 sec)操作步骤:
1,打开mysql会话,施加读锁,滚动二进制日志
mysql> FLUSH TABLES WITH READ LOCK; mysql> FLUSH LOGS;2,通过另一个终端,保存二进制日志文件及相关位置信息
# mysql -uroot -p -e "SHOW MASTER STATUS\G" > /backup/master-`date +%F`.info3.创建快照卷
# lvcreate -L 30M -s -p r -n mydata-snap /dev/vg_root/mydata4,释放锁
mysql> UNLOCK TABLES;5,挂载快照卷,开始备份
# mkdir /mnt/snap # mount /dev/vg_root/mydata-snap /mnt/snap -o ro # mkdir /backup/full-backup-`date +%F` # cp -a /mnt/snap/data/* /backup/full-backup-2015-09-20/ # cd /backup/full-backup-2015-09-20/ # rm -f mysql-bin.* # 完全备份后,二进制日志可以删除6,卸载快照卷并删除
# cd # umount /mnt/snap # lvremove --force /dev/vg_root/mydata-snap7,增量备份二进制日志
# mysqlbinlog --start-datetime="2015-09-20 11:34:57" mysql-bin.000026 mysql-bin.000027 > /backup/increment-`date +%F-%H-%M-%S`.sql至此,基于lvm快照备份数据库已完成
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 在Linux中使用LVM构建灵活的磁盘存储(第一部分)
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜