mysql备份

71 阅读2分钟

一、简介

介绍

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就可以了.


对比

InnobackupexXtraBackup
备份引擎支持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