mysql备份工具Xtrabackup的安装与使用

Xtrabackup是一个开源的免费的热备工具,在Xtrabackup包中主要有Xtrabackup和
innobackupex两个工具。其中Xtrabackup只能备份InnoDB和XtraDB两种引擎; 
innobackupex则是封装了Xtrabackup,同时增加了备份MyISAM引擎的功能。
工具官方网站:https://www.percona.com/

一、工具的部署

(1)YUM安装

推荐使用yum安装,避免繁琐的依赖包问题
1,安装依赖包:

yum install libev

2,安装Percona 存储库:

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-
4/percona-release-0.1-4.noarch.rpm

查看版本清单:

yum list | grep percona

3,安装:

yum install percona-xtrabackup-24
(2)离线安装

由于部分安全考量较为严格的环境,没有外网可以使用rpm包或自建yum源的方式
进行,相对第一种方式,对依赖包不熟悉的情况下会较为麻烦。
1, 依赖包一般建议自行到http://rpmfind.net/查找下载
本次测试环境centos7所需依赖包链接:

http://mirror.centos.org/centos/7/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-libs-5.16.3-
297.el7.x86_64.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-5.16.3-
297.el7.x86_64.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-Digest-1.17-
245.el7.noarch.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-Digest-MD5-2.52-
3.el7.x86_64.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-DBI-1.627-
4.el7.x86_64.rpm
http://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/perl-DBD-MySQL-4.023
-6.el7.x86_64.rpm
xtrabackup的rpm包链接:
https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-
XtraBackup-2.4.21/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.21-
1.el7.x86_64.rpm

2, 安装
安装前先部分依赖包是否已有,已有的无需再安装:

        rpm -qa |grep -i [包名]

安装上述依赖包:

    rpm -ivh libev-4.15-7.el7.x86_64.rpm
        rpm -ivh perl-libs-5.16.3-297.el7.x86_64.rpm
        rpm -ivh perl-5.16.3-299.el7_9.x86_64.rpm
        rpm -ivh perl-Digest-1.17-245.el7.noarch.rpm
        rpm -ivh perl-Digest-MD5-2.52-3.el7.x86_64.rpm
    rpm -ivh perl-DBI-1.627-4.el7.x86_64.rpm --force --nodeps
   rpm -ivh perl-DBD-MySQL-4.023-6.el7.x86_64.rpm

安装xtrabackup:

rpm -ivh percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm

二、xtrabackup全备

mkdir -p /opt/mysql/backup/
innobackupex --defaults-file=/opt/mysql/my.cnf  --user=root --password=xxxx --
socket=/opt/mysql/mysql.sock  /opt/mysql/backup/

–defaults-file=  不写时默认/etc/my.cnf
–socket 默认路径正常时可以不填
备份后的文件夹中有几个文件需要注意:
xtrabackup_binlog_info记录了binlog的position,若开启了GTID,也会将GTID取
出。在用于备份+binlog恢复或建立slave的场景里十分有用。
 xtrabackup_checkpoints记录了此次备份的类型和lsn号,是否压缩。
xtrabackup_info则记录了备份工具的信息,时间,备份对象(是针对全实例还是某库
表),是否是增量,binlog位置等。
    在这里插入图片描述

三、xtrabackup全备还原

①停掉数据库,并确认进程关闭:

systemctl stop mysqld 
ps -ef |grep mysql

②移除原数据库存放目录所有内容:

mv /data/timatrix/mysql/mysqldata/ /data/timatrix/mysql/mysqldatabak

③还原:
在备份上应用日志:

innobackupex --defaults-file=/etc/my.cnf --apply-log /opt/mysql/backup/[全备份日
期目录]

将备份还原到 my.cnf 指定的 datadir 中:

innobackupex --defaults-file=/etc/my.cnf --copy-back /opt/mysql/backup/[全备份日
期目录]

注:这里my.cnf 如没有加入 datadir 配置项,会报错(Error: datadir must be 
specified.)

④给数据目录重新授权:

chown -R mysql:mysql /data/timatrix/mysql/mysqldata/

⑤备份完成,启动数据库。

systemctl start mysqld

注:重新登陆时密码已变为备份数据库的密码。                              
在这里插入图片描述
在这里插入图片描述
可以看到增量备份的from_lsn 就是全量备份的to_lsn。可以确认正常。
五、增量备份还原
应用全备日志:

innobackupex --apply-log --redo-only /opt/mysql/backup/[全备日期目录] --use-memory=1G

合并增备日志到全备目录:

innobackupex --apply-log --redo-only /opt/mysql/backup/[全备日期目录] --incremental-dir=/root/backup/[增量备份日期目录]  --use-memory=1G

停止数据库

systemctl stop mysqld 

mv或rm数据库目录
将备份还原到datadir目录:

innobackupex --copy-back /root/backup/[全备日期目录]
chown -R mysql:mysql /data/timatrix/mysql/mysqldata/
systemctl start mysqld 

–redo-only对增量备份进行合并
–use-memory增大使用系统内存量从而提高恢复速度。
-incremental-dir需要被合并进去的增量备份目录。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值