@TOC
一、数据库的备份
1. 数据备份种类
1.1 分类的维度
1. 备份时数据库的状态
2. 备份文件的格式
- 逻辑备份:供人可读的文件
- 物理备份:二进制文件,表数据
rdb
文件等
3. 备份的内容
1.2 备份常用工具
2. OUTFILE命令备份
2.1 定义
2.2 使用方式
- 1.首先查询到MySQL的导出路径
show variables like '%secure%'
- 2.然后使用
into outfile
指令将查询结果导出到指定文件中
mysql> select * into outfile '/var/lib/mysql-files/t1-out' from t1;
- 3.可以在事务中备份同一时刻的一致性数据
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 缺陷
3. 如何使用mysqldump
3.1 outfile如何改进
3.2 mysqldump简介
3.3 mysqldump原理
1. 备份语句
[root@lsEdu01 ~]# mysqldump -h192.168.184.128 -uroot -pLSEdu01_1010 --databases d1 --single-transaction > 1.sql
3.4 注意事项
3.5 缺陷
4. mysqldump增量备份
4.1 增量备份思路
- 查看
binlog
日志文件
[root@lsEdu01 mysql]# pwd
/var/lib/mysql
[root@lsEdu01 mysql]# ll
4.2 备份步骤
1. 全量备份,并创建新的binlog
文件
- 用
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]#
13
号之前的是旧的日志文件,之后的是备份后产生的新的binlog
日志文件,是进行增量备份的起始标志- 查看日志文件
[root@lsEdu01 mysql]# cat d1_back.sql
2. 增量备份
- 备份前,防止备份日志文件正在写,需要先切换
binlog
文件,即,切换到新的日志文件,比如之前最新的是13
号,现在切换成14
号,保证13
号文件的完整性 - 这样,
13
号文件记录了之前全量备份到这次增量备份之间所做的全部变更 - 最后,将所有新增的
binlog
文件备份
[root@lsEdu01 mysql]# mysqladmin -h192.168.184.128 -uroot -pLSEdu01_1010 flush-logs
3. 还原
5. 物理备份-XtraBackup
5.1 优点
5.2 原理
直接拷贝裸文件问题
Mysql文件结构
实现物理热备份
实现物理增量备份
物理还原
5.3 实操
idbackup
xtraBackup