MySQL|MySQl学习笔记-6.数据库的备份

@TOC
1. 数据备份种类 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

1.1 分类的维度
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

1. 备份时数据库的状态 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

2. 备份文件的格式 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 逻辑备份:供人可读的文件
  • 物理备份:二进制文件,表数据rdb文件等
3. 备份的内容 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

1.2 备份常用工具
【MySQL|MySQl学习笔记-6.数据库的备份】MySQL|MySQl学习笔记-6.数据库的备份
文章图片

2. OUTFILE命令备份 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

2.1 定义
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

2.2 使用方式
  • 1.首先查询到MySQL的导出路径
show variables like '%secure%'

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 2.然后使用into outfile指令将查询结果导出到指定文件中
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

mysql> select * into outfile '/var/lib/mysql-files/t1-out' from t1;

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 3.可以在事务中备份同一时刻的一致性数据
    MySQL|MySQl学习笔记-6.数据库的备份
    文章图片
mysql> begin; Query OK, 0 rows affected (0.00 sec)mysql> select * into outfile '/var/lib/mysql-files/t2-out' fields terminated by ',' from t2; Query OK, 3 rows affected (0.00 sec)mysql> commit; Query OK, 0 rows affected (0.00 sec)

[root@lsEdu01 ~]# cat /var/lib/mysql-files/t2-out 1,2 3,4 5,6

2.3 缺陷
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3. 如何使用mysqldump MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3.1 outfile如何改进
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3.2 mysqldump简介
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3.3 mysqldump原理
1. 备份语句 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

[root@lsEdu01 ~]# mysqldump -h192.168.184.128 -uroot -pLSEdu01_1010 --databases d1 --single-transaction > 1.sql

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3.4 注意事项
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3.5 缺陷
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

4. mysqldump增量备份 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

4.1 增量备份思路
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 查看binlog日志文件
[root@lsEdu01 mysql]# pwd /var/lib/mysql [root@lsEdu01 mysql]# ll

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

4.2 备份步骤
1. 全量备份,并创建新的binlog文件 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • master-data标记新的binlog位置,还原时知道从哪开始还原
[root@lsEdu01 mysql]# mysqldump -h192.168.184.128 -uroot -pLSEdu01_1010 --databases d1 --single-transaction --flush-logs --master-data=https://www.it610.com/article/2> d1_back.sql; mysqldump: [Warning] Using a password on the command line interface can be insecure. [root@lsEdu01 mysql]#

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 13号之前的是旧的日志文件,之后的是备份后产生的新的binlog日志文件,是进行增量备份的起始标志
  • 查看日志文件
[root@lsEdu01 mysql]# cat d1_back.sql

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

2. 增量备份 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

  • 备份前,防止备份日志文件正在写,需要先切换binlog文件,即,切换到新的日志文件,比如之前最新的是13号,现在切换成14号,保证13号文件的完整性
  • 这样,13号文件记录了之前全量备份到这次增量备份之间所做的全部变更
  • 最后,将所有新增的binlog文件备份
[root@lsEdu01 mysql]# mysqladmin -h192.168.184.128 -uroot -pLSEdu01_1010 flush-logs

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

3. 还原 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

5. 物理备份-XtraBackup MySQL|MySQl学习笔记-6.数据库的备份
文章图片

5.1 优点
MySQL|MySQl学习笔记-6.数据库的备份
文章图片

5.2 原理
直接拷贝裸文件问题 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

Mysql文件结构 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

实现物理热备份 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

实现物理增量备份 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

物理还原 MySQL|MySQl学习笔记-6.数据库的备份
文章图片

5.3 实操
idbackup MySQL|MySQl学习笔记-6.数据库的备份
文章图片

xtraBackup MySQL|MySQl学习笔记-6.数据库的备份
文章图片

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

MySQL|MySQl学习笔记-6.数据库的备份
文章图片

    推荐阅读