跳至主要內容

Mysql 备份

blacklad大约 3 分钟MysqlMysqlMysql 技术内幕

Mysql 备份

通过备份可以避免因为磁盘的损坏导致数据的丢失。

1 备份方法

  1. 热备是指数据库在运行过程中直接备份。
  2. 冷备是在数据库停止的状态下备份。
  3. 温备是指在数据库运行中备份,但是会影响当前数据库的一些操作,如加全局锁保证数据一致性。

1.1 冷备

冷备只需要备份文件:数据库 frm 文件、共享表空间、独立表空间 *.ibd、重做日志文件,以及配置文件。

一般是写一个脚本,定时打包压缩文件备份到其他的机器中。

1.2 备

ibbackup 是 InnoDB 官方提供的热备工具备份流程:

  1. 记录备份开始时重做日志文件的 LSN。
  2. 复制共享表空间文件和独立表空间文件。
  3. 记录复制完后重做日志文件检查点的 LSN。
  4. 复制在备份过程中产生的重做日志。

XtraBackup 为 ibbackup 的开源版,实现了 ibbackup 的备份功能,同时支持增量备份。

2 备份文件

  1. 逻辑备份:导出的内容一般是一条条sql语句或者可读的内容,如 mysqldump 、select * into outfile
  2. 裸文件备份: 直接复制数据库的数据文件,即可在运行中复制也可以在停止的时候复制。

2.1 逻辑备份

  1. 通过 mysqldump 可以生成表结构和数据的 sql 语句,恢复可以通过直接导入文件或者 source 命令恢复。
  2. select * into outfile 'filepath' 按照指定格式导出数据,恢复通过 load data infilemysqlinport 等命令恢复。

3 备份内容

  1. 全量备份 完整备份。
  2. 增量备份 在上次备份的基础上的修改进行备份。
  3. 日志备份 通过修改日志备份。

3.1 增量备份

  1. 首先完成一个全量备份,并记录下此时检查点的LSN
  2. 进行增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是则备份该页。

3.2 快照备份

快照备份是通过文件系统支持的快照功能进行备份。

快照使用了 cow 技术。

4 复制

复制是 MySQL 的一种高可用解决方案。原理是完全备份+二进制日志备份的还原。

  1. 主服务器把更改记录到二进制日志中。
  2. 从服务器吧主服务器的二进制日志复制到自己的中继日志中。
  3. 从服务器重做中继日志中的日志,应用到自己的数据库上。

4.1 应用

  1. 数据分布,在不同的数据中心之间实现数据的复制。
  2. 读取负载均衡,将读操作分配到从服务器中,减少主服务器的压力。
  3. 数据库备份。
  4. 故障转移、恢复。
上次编辑于:
贡献者: blacklad