Mysql 备份
大约 3 分钟MysqlMysqlMysql 技术内幕
Mysql 备份
通过备份可以避免因为磁盘的损坏导致数据的丢失。
1 备份方法
- 热备是指数据库在运行过程中直接备份。
- 冷备是在数据库停止的状态下备份。
- 温备是指在数据库运行中备份,但是会影响当前数据库的一些操作,如加全局锁保证数据一致性。
1.1 冷备
冷备只需要备份文件:数据库 frm
文件、共享表空间、独立表空间 *.ibd
、重做日志文件,以及配置文件。
一般是写一个脚本,定时打包压缩文件备份到其他的机器中。
1.2 备
ibbackup 是 InnoDB 官方提供的热备工具备份流程:
- 记录备份开始时重做日志文件的 LSN。
- 复制共享表空间文件和独立表空间文件。
- 记录复制完后重做日志文件检查点的 LSN。
- 复制在备份过程中产生的重做日志。
XtraBackup 为 ibbackup 的开源版,实现了 ibbackup 的备份功能,同时支持增量备份。
2 备份文件
- 逻辑备份:导出的内容一般是一条条sql语句或者可读的内容,如
mysqldump 、select * into outfile
。 - 裸文件备份: 直接复制数据库的数据文件,即可在运行中复制也可以在停止的时候复制。
2.1 逻辑备份
- 通过
mysqldump
可以生成表结构和数据的 sql 语句,恢复可以通过直接导入文件或者source
命令恢复。 select * into outfile 'filepath'
按照指定格式导出数据,恢复通过load data infile
、mysqlinport
等命令恢复。
3 备份内容
- 全量备份 完整备份。
- 增量备份 在上次备份的基础上的修改进行备份。
- 日志备份 通过修改日志备份。
3.1 增量备份
- 首先完成一个全量备份,并记录下此时检查点的LSN
- 进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是则备份该页。
3.2 快照备份
快照备份是通过文件系统支持的快照功能进行备份。
快照使用了 cow 技术。
4 复制
复制是 MySQL 的一种高可用解决方案。原理是完全备份+二进制日志备份的还原。
- 主服务器把更改记录到二进制日志中。
- 从服务器吧主服务器的二进制日志复制到自己的中继日志中。
- 从服务器重做中继日志中的日志,应用到自己的数据库上。
4.1 应用
- 数据分布,在不同的数据中心之间实现数据的复制。
- 读取负载均衡,将读操作分配到从服务器中,减少主服务器的压力。
- 数据库备份。
- 故障转移、恢复。