1 概述
根据备份的方法:
- 热备
- 冷备
- 温备。在数据库运行时进行,对当前数据库操作有影响,如加全局读锁以保证备份数据的一致性。
根据备份后文件的内容:
- 逻辑备份
- 裸文件备份
根据备份数据库的内容:
- 完全备份
- 增量备份。大部分通过二进制日志完成增量备份。
- 日志备份。备份 MySQL 数据库的二进制日志。
2 冷备
对 InnoDB 的冷备, 备份:
- MySQL 数据库的 frm 文件
- 共享表空间文件
- 独立表空间文件(*.ibd)
- 重做日志文件
- 数据库配置文件
my.cnf(定期)
最好另外将本地的备份存放到远程的服务器中
3 逻辑备份
备份
- mysqldump 备份工具(但不能导出视图)
- SELECT…INTO OUTFILE 语句
恢复
- mysqldump
- LOAD DATA INFILE(可以导入通过 mysqldump-tab 或 SELECT INTO OUTFILE 导出的数据)
- mysqlimport
4 二进制日志备份与恢复
先启用二进制日志。并且还需要启用一些其他参数来保证安全和正确地记录二进制日志。
推荐的二进制日志的服务器配置:
[mysqld]log-bin = mysql-binsync_binlog = 1innodb_support_xa = 1
5 热备
- ibbackup 热备工具
- XtraBackup 备份工具(可以增量备份)
6 快照备份
MySQL 本身不支持快照功能,因此快照备份是指通过文件系统支持的快照功能对数据库进行备份。
支持快照功能的文件系统和设备包括 FreeBSD 的 UFS 文件系统,Solaris 的 ZFS 文件系统,GNU/Linux 的逻辑管理器(Logical Volume Manager,LVM)
7 复制
复制的工作原理
复制(replication)
其工作原理本质上是一个完全备份加上二进制日志备份的还原。是异步实时的。
- 主服务器把数据更改记录到二进制日志
binlog中 - 从服务器把主服务器的二进制日志
binlog复制到自己的中继日志relay log中 - 从服务器重做中继日志,把更改应用到自己的数据库上,达到数据的最终一致性。

从服务器有 2 个线程:I/O 线程和 SQL 线程。
查看当前复制的延迟:
- 命令
SHOW SLAVE STATUS查看当前复制的运行状态 - 命令
SHOW MASTER STATUS查看主服务器中二进制日志的状态
快照+复制的备份架构
复制不仅可用作备份,还可以:
- 数据分布
- 读取的负载平衡
- 数据库备份。复制对备份有帮助,但从服务器不是备份。
- 高可用性和故障转移
