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

@TOC

1. 数据备份种类

MySQl学习笔记-6.数据库的备份_第1张图片

1.1 分类的维度

MySQl学习笔记-6.数据库的备份_第2张图片

1. 备份时数据库的状态

MySQl学习笔记-6.数据库的备份_第3张图片

2. 备份文件的格式

MySQl学习笔记-6.数据库的备份_第4张图片

  • 逻辑备份:供人可读的文件
  • 物理备份:二进制文件,表数据rdb文件等

3. 备份的内容

MySQl学习笔记-6.数据库的备份_第5张图片

1.2 备份常用工具

MySQl学习笔记-6.数据库的备份_第6张图片

2. OUTFILE命令备份

MySQl学习笔记-6.数据库的备份_第7张图片

2.1 定义

MySQl学习笔记-6.数据库的备份_第8张图片

2.2 使用方式

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

MySQl学习笔记-6.数据库的备份_第9张图片

  • 2.然后使用into outfile指令将查询结果导出到指定文件中

MySQl学习笔记-6.数据库的备份_第10张图片

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

MySQl学习笔记-6.数据库的备份_第11张图片
MySQl学习笔记-6.数据库的备份_第12张图片

  • 3.可以在事务中备份同一时刻的一致性数据
    MySQl学习笔记-6.数据库的备份_第13张图片
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学习笔记-6.数据库的备份_第14张图片

3. 如何使用mysqldump

MySQl学习笔记-6.数据库的备份_第15张图片

3.1 outfile如何改进

MySQl学习笔记-6.数据库的备份_第16张图片

3.2 mysqldump简介

MySQl学习笔记-6.数据库的备份_第17张图片

3.3 mysqldump原理

1. 备份语句

MySQl学习笔记-6.数据库的备份_第18张图片
MySQl学习笔记-6.数据库的备份_第19张图片

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

MySQl学习笔记-6.数据库的备份_第20张图片

3.4 注意事项

MySQl学习笔记-6.数据库的备份_第21张图片

3.5 缺陷

MySQl学习笔记-6.数据库的备份_第22张图片

4. mysqldump增量备份

MySQl学习笔记-6.数据库的备份_第23张图片

4.1 增量备份思路

MySQl学习笔记-6.数据库的备份_第24张图片

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

MySQl学习笔记-6.数据库的备份_第25张图片

4.2 备份步骤

1. 全量备份,并创建新的binlog文件

MySQl学习笔记-6.数据库的备份_第26张图片

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

MySQl学习笔记-6.数据库的备份_第27张图片

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

MySQl学习笔记-6.数据库的备份_第28张图片

2. 增量备份

MySQl学习笔记-6.数据库的备份_第29张图片

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

MySQl学习笔记-6.数据库的备份_第30张图片

3. 还原

MySQl学习笔记-6.数据库的备份_第31张图片

5. 物理备份-XtraBackup

MySQl学习笔记-6.数据库的备份_第32张图片

5.1 优点

MySQl学习笔记-6.数据库的备份_第33张图片

5.2 原理

直接拷贝裸文件问题

MySQl学习笔记-6.数据库的备份_第34张图片

Mysql文件结构

MySQl学习笔记-6.数据库的备份_第35张图片

实现物理热备份

MySQl学习笔记-6.数据库的备份_第36张图片

实现物理增量备份

MySQl学习笔记-6.数据库的备份_第37张图片

物理还原

MySQl学习笔记-6.数据库的备份_第38张图片

5.3 实操

idbackup

MySQl学习笔记-6.数据库的备份_第39张图片

xtraBackup

MySQl学习笔记-6.数据库的备份_第40张图片
MySQl学习笔记-6.数据库的备份_第41张图片
MySQl学习笔记-6.数据库的备份_第42张图片
MySQl学习笔记-6.数据库的备份_第43张图片

你可能感兴趣的:(MySQL,数据库,mysql,学习)