备份方式
- 逻辑备份(DB 备份到文件)
- 物理备份(DB 备份到 DB)
- 全量备份和增量备份以及差异备份
常用备份工具
名称 | 特点 |
---|---|
mysqldump | 最常用的逻辑备份工具,支持全量备份和条件备份 |
mysqlpump | 多线程逻辑备份工具,mysqldump 增强版本 |
xtrabackup | InnoDB 在线物理备份工具,支持多线程和增量备份 |
mysqldump
优点
- 备份结果为可读 SQL 文件,可用于跨版本跨平台恢复数据
- 备份文件尺寸小于物理备份,便于长时间存储
- MySQL 发行版自带工具,无需安装第三方软件
缺点
- 只能单线程执行备份恢复任务,备份恢复速度较慢
- 为完成一致性备份需要对备份表加锁,容易造成阻塞
- 会对 Innodb Buffer Pool 造成污染
mysqlpump
优点
- 语法同 mysqldump 高度兼容、学习成本低
- 支持基于库和表的并行备份,可以提高逻辑备份的性能
- 支持使用 ZLIB 和 Lz4 算法对备份进行压缩
缺点
- 基于表进行并行备份,对大表性能较差
- 5.7.11 之前版本不支持一致性并行备份
- 会对 Innodb Buffer Pool 造成污染
xtrabackup
优点
- 支持 innodb 存储引擎在线热备份,对 innodb 缓存没有影响
- 支持并行对数据库全量备份和增量备份
- 备份和恢复效率比逻辑备份高
缺点
- 单表恢复比较复杂
- 完成的数据文件拷贝,备份文件比逻辑备份大
- 对跨平台和数据库版本的备份恢复支持度不如逻辑备份
备份工具应用
- 逻辑备份 + 二进制日志
- 使用 xtrabackup 工具
xtrabackup 进行增量备份
- 全量备份 innobackupex --user=root --password=pwd /backups
- 增量备份 innobackupex --user=root --password=pwd --incremental /home/db_backup/ --incremental-basedir=/home/db_backup/back_dir
xtrabackup 进行增量恢复
- innobackupex --apply-log --redo-only 全备目录
- innobackupex --apply-log --redo-only 全备目录 --incremental-dir= 第 1... N 次增量目录
- innobackupex --apply-log 全备目录
备份二进制日志
- cp 命令进行离线备份
- mysqlbinlog 命令在线实时备份
- mysqlbinlog --raw --read-from-remote-server --stop-never --host 备份 ip --port 端口 -u 用户名 -p 密码 启动二进制日志文件名
用户具有 replication slave 权限
欢迎扫描下方二维码,持续关注:
互联网工程师(id:phpstcn),我们一起学习,一起进步