MySQL备份教程:物理备份工具xtrabackupinnobackupex使用教程.doc
PAGE
PAGE1
MySQL备份教程:物理备份工具xtrabackup/innobackupex使用教程
一、Xtrabackup作用
Xtrabackup是Percona发布的一款物理备份工具,通常将直接复制数据文件作为备份手段的方式称为物理备份。相比逻辑备份而言速度更快、服务器负载也更低,并且备份期间不会锁表(MyISAM引擎依然存在FTWRL),备份期间不用间断业务,如果备份期间数据发生变化也会通过redolog保持数据一致,并且支持增量备份。只不过在进行单表备份和恢复时非常麻烦,这种场景建议用逻辑备份。
二、Xtrabackup安装
1、Percona官网推荐使用Yum方式安装,只需要配置好仓库地址即可
yuminstall/yum/percona-release-latest.noarch.rpm
yuminstallpercona-xtrabackup-24.x86_64#mysql8以前都是使用该版本
2、如果是下载的rpm包手动安装,如果出现libev.so.4()(64bit)isneededbypercona-xtrabackup-2.3.4-1.el7.x86_64这样的报错,只需要配置好EPEL的yum源,再安装libev即可,如图:
3、安装好Xtrabackup后会提供给用户2给备份工具,分别是xtrabackup和innobackup。xtrabackup主要针对innodb表来做备份,而innobackupex是为了兼容老版本的非innod表备份,对xtrabackup进行了一次封装,查看innobackupex会发现它是xtrabackup的软连接,用innobackup备份innodb表时会自动调用xtrabackup。xtrabackup在8.0版本已经不再支持innobackup
三、innobackupex常用选项
middot;--defaults-file=:指定f配置文件路径,如/etc/f。该选项必须是第一个选项,它会根据配置文件查找数据路径
middot;--user=:执行备份操作的MySQL用户(非系统用户),该用户需要有MySQL的相关权限
middot;--password=:MySQL用户的密码
middot;--databases:指定要备份的数据库,多个数据库以隔开,如db1db2,在指定某数据库时也可以只指定其中的某张表(MySQL需要配置innodb_file_per_table=1)
middot;--no-timestamp:使用这个选项后,备份时不会创建一个以时间戳命名的目录
middot;--compress:压缩备份数据,可以达到好几十倍的压缩率。恢复时需在apply-log之前增加--decompress解压步骤
middot;--compress-threads=8:启用压缩备份时开启的压缩线程数
middot;--stream:使用xbstream或tar流备份,使用此选项时备份数据将以指定流格式输出到标准输出上,通常用它实现本机不落盘的异地备份
middot;--parallel=4:备份所用的线程数
middot;--slave-info:在从库进行备份时加上该参数后会在备份目录下生成xtrabackup_slave_info文件,该文件记录了主库的binlogposition和GTID信息而非进行备份的从库的信息。这样在使用从库备份进行恢复或者部署新的从库时都可以找到正确的主库position。如果主库使用的传统复制模式并且slave_parallel_workers不为0,则该选项无法使用,备份下来的数据也无法部署为新的从库。
middot;--safe-slave-backup:检测从库在备份期间是否有打开临时表(保证数据一致性),如果没有打开临时表就stopSQLthread开始备份,备份完后再startSQLthread。如果有打开的临时表就会等待--safe-slave-backup-timeout超时
middot;--safe-slave-backup-timeout:默认300秒,每3s进行一次重试检查
middot;--incremental:增量备份
middot;--incremental-basedir:指定增量备份所依赖的上一次备份
middot;--use-memory:指定恢复数据时使用的内存大小
四、innobackupex备份与还原
备份命令执行后屏幕会开始输出很多提示,比如告诉用户当前正在复制的是哪个表等等信息。备份期间如果有新数据产生会被记录在一个innobackup_log文件中。在指定的备份目录中除了MySQ