一、简介
介绍
lue
备份分类
逻辑备份 物理备份
二、逻辑备份
略
1、mysqldump
略
2、mydumper
lue
三、物理备份
1、Percona xtrabackup(innobackupex)
开源的热备份工具,适用于MySQL和Percona Server的InnoDB引擎。它可以实现非阻塞的备份,支持增量备份,并能备份压缩数据,以减少备份所需空间和时间。
mysql版本不同对应的最佳 xtrabackup也不同:
mysql 5.1 – xtrabackup2.0
mysql5.6 --xtrabackup 2.2
mysql5.7 --xtrabackup2.4
mysql 5.7以下版本,可以采用percona xtrabackup 2.4版本; mysql 8.0以上版本,可以采用percona xtrabackup 8.0版本,xtrabackup8.0也只支持mysql8.0以上的版本
xtrabackup有个缺陷,只可以备份innodb;但是我们也需要备份myisam,然后就出来了一个工具:innobackupex。
也就是说innobackupex可以备份innodb也可以myisam。
innobackupex实际上是percona-xtrabackup的perl整合脚本,功能当然更强大一些。
xtrabackup备份实际上是在线的物理热备,为什么呢,因为实际上他是以拷贝mysql物理文件来备份的方式,只是加入了一些锁和钩子来避免数据缺失,优势当然就是快了,物理拷贝始终是速度最快的备份方式,缺点就是占用空间大.
备份原理很多文章有写,重点在于备份初期会创建一个redo的钩子,让在备份期间产生的数据都能记录下来,而备份数据文件时也会锁一下表,这样数据就会更完整.
xtrabackup支持全备和增备,但是我个人不建议用增备,因为增备效果不怎么样,而且直接拷贝binlog其实也挺好用,所以全备+binlog就可以了.
对比
| Innobackupex | XtraBackup | |
| 备份引擎支持 | Innobackupex 是一个封装了 XtraBackup 的 Perl 脚本,支持同时备份 InnoDB 和 MyISAM,但在对 MyISAM 备份时需要加一个全局的读锁 | XtraBackup 只能备份 InnoDB 和 XtraDB 两种数据引擎的表,而不能备份 MyISAM 数据表 |
| 备份过程 | Innobackupex 在备份过程中首先启动 Xtrabackup_log 后台检测的进程,实时检测 MySQL redo 的变化,一旦发现 redo 有新的日志写入,立刻将日志写入到日志文件 Xtrabackup_log 中,并复制 InnoDB 的数据文件和系统表空间文件 idbdata1 到备份目录。InnoDB 引擎表备份完之后,执行 Flush table with read lock 操作进行 MyISAM 表备份 | |
| 增量备份 | MyISAM 不支持增量备份,对于 MyISAM 表而言,执行增量备份时其实进行的是完全备份 |
2、MySQL Enterprise Backup (MEB)
MySQL企业版提供的一款高效备份工具,支持多种备份类型,包括在线热备份、增量备份等
3、innodb Hot Backup
这是InnoDB官方提供的一个物理备份工具,同样支持热备份
四、myisam的物理备份的实现
略
1、使用innobackupex
略
2、直接备份目录
略
五、补充01
略
六、补充02
略