您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥linux运维学习笔记-MySQL系列之十五——使用LVM快照进行数据库备份
发布时间:2019-03-19 21:44:04编辑:雪饮阅读()
使用逻辑卷快照进行完整备份及增量备份
需要的模拟命令
mysql控制台中进行滚动日志:
mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)
position的改变:
像如insert的语句就会引起position的改变
查看二进制日志如:
[root@localhost /]# mysqlbinlog /mydata/data/mysql-bin.000008
完整备份
其实就是给mysql数据存放目录进行一次lvm快照,然后将该快照挂载到某处再将挂载后里面的所有文件都复制到我们指定的一个备份目录中,最后再将lvm快照删除即可
所以这里的前提是:
数据文件要单独在逻辑卷上、而且该逻辑卷所在卷组必须有足够空间使用快照卷、数据文件和事务日志必须在同一个逻辑卷上
创建lvm快照如:
[root@localhost /]# lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata
跨多个二进制文件日志的即时点的增量备份
当一个完整备份时记录了备份时服务器正在使用的二进制日志文件及其position,那么在此之后服务器又执行了一些语句,而这些语句可能在所记录的这个二进制日志文件中所记录的position之后,也可能直接滚动了日志文件,那么像这种增量数据在多个二进制文件中则可以用如下方式来备份
[root@localhost /]# mysqlbinlog --start-datetime='2019-03-19 20:27:44' /mydata/data/mysql-bin.000008 /mydata/data/mysql-bin.000009 /mydata/data/mysql-bin.000010 > /backup/incremental-`date +%F-%H-%M-%S`.sql
即通过所记录的position日志所对应的时间点开始备份
模拟数据库损坏
[root@localhost ~]# service mysqld stop
Shutting down MySQL. [ OK ]
[root@localhost ~]# rm -rf /mydata/data/*
模拟数据库的恢复
完整备份的恢复
[root@localhost ~]# cp -a /backup/full-backup-2019-03-19/* /mydata/data/
增量备份的恢复
[root@localhost ~]# service mysqld start
Starting MySQL [ OK ]
然后进入mysql控制台查看完整恢复的数据
mysql> select * from test;
+--------+------+
| id | name |
+--------+------+
| 1 | |
| 2 | gl |
| 220807 | |
+--------+------+
3 rows in set (0.00 sec)
然后设置当前会话的mysql二进制日志不产生
mysql> set sql_log_bin=0;
Query OK, 0 rows affected (0.01 sec)
然后导入之前的增量备份
mysql> source /backup/incremental-2019-03-19-21-02-17.sql;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Charset changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Charset changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
再次查看完整备份之后所增加的数据
mysql> select * from test;
+--------+------+
| id | name |
+--------+------+
| 1 | |
| 2 | gl |
| 3 | gl2 |
| 4 | gl3 |
| 5 | gl4 |
| 220807 | |
+--------+------+
6 rows in set (0.00 sec)
重新使当前会话的二进制日志可以产生
mysql> set sql_log_bin=1;
Query OK, 0 rows affected (0.00 sec)
关键字词:linux,mysql,lvm,备份
相关文章
- 马哥linux运维学习笔记-MySQL系列之十四——MySQL备份
- 马哥linux运维学习笔记-MySQL系列之十二——MySQL日志
- 马哥linux运维学习笔记-MySQL系列之九——MySQL事务和
- 马哥linux运维学习笔记-MySQL系列之八——多表查询、
- 马哥linux运维学习笔记-MySQL系列之七——单表查询、
- 马哥linux运维学习笔记-MySQL系列之六——MySQL管理表
- 马哥linux运维学习笔记-MySQL系列之五——MySQL数据类
- 马哥linux运维学习笔记-mysql系列之四mysql客户端工具
- 马哥linux运维学习笔记-mysql系列之三MySQL数据库基础
- 马哥linux运维学习笔记-配置使用vnc服务