mysql8.0热备份之xtrabackup8.0

xtrabackup 8.0安装

本篇文章内容基于文章中的各个软件版本

 介绍

Percona XtraBackup是全球唯一的开源免费MySQL热备份软件,可为InnoDB和XtraDB 数据库执行非阻塞备份。使用Percona XtraBackup,您可以获得以下好处:

  • 快速可靠地完成备份
  • 备份期间不间断的事务处理
  • 节省磁盘空间和网络带宽
  • 自动备份验证
  • 由于更快的恢复时间,更长的正常运行时间

Percona XtraBackup为所有版本的Percona Server for MySQL和MySQL制作MySQL热备份。它执行流式、压缩和增量MySQL 备份。
PS:XtraBackup 8.0版本与Mysql8.0配套,并移除innobackupex命令

 yum安装

  1. 下载地址

https://www.percona.com/downloads/XtraBackup/LATEST/

  1. 下载安装
#下载rpm包
wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.25-17/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.25-17.1.el7.x86_64.rpm
#安装
yum install -y percona-xtrabackup-80-8.0.25-17.1.el7.x86_64.rpm 
#查看
rpm -qa |grep xtrabackup

 其他安装方式

  • 详见官网
    更多安装方式

安装后的工具

安装后有xtrabackup、xbcloud、xstream、xbcrypt、xbcloud_osenv、xbrlapi

xtrabackup备份

 备份流程

在这里插入图片描述

  工具

Xtrabackup中主要包含两个工具:
xtrabackup:是用于热备innodb,xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;
innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。
此版本中已移除innobackupex命令
常用选项:  
   --host     指定主机
   --user     指定用户名
   --password    指定密码
   --port     指定端口
   --databases     指定数据库
   --sorcket	指定启动文件
   --backup		指明操作为备份操作
   --incremental    创建增量备份
   --incremental-basedir   指定包含完全备份的目录
   --incremental-dir      指定包含增量备份的目录   
   --apply-log        对备份进行预处理操作             
     一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
   --redo-only      不回滚未提交事务
   --copy-back     恢复备份目录

备份恢复

  • 全备命令
xtrabackup --defaults-file=/etc/my.cnf --backup --databases=test --user=root --password=1234 --compress --compress-threads=4 --target-dir=/backup/full/01 --socket=/var/lib/mysql/mysql.sock
# 压缩	--compress 
# 加速压缩  --compress-threads
  • 基于全备的增量备份操作
xtrabackup --defaults-file=/etc/my.cnf --backup --databases=test --user=root --password=1234 --compress --compress-threads=4 --target-dir=/backup/increment/01 --incremental-basedir=/backup/full/01 --socket=/var/lib/mysql/mysql.sock

全部备份恢复(基于全备)

  1. 关闭数据库
service mysqld stop
  1. 清空mysql的数据目录(清空前请先备份相关目录)
  2. 恢复数据(将全备复制到数据目录下)
#解压缩 
xtrabackup --decompress --target-dir=/backup/full/01
#删除压缩文件 --remove-original 解压后压缩文件和数据文件共存,若不想保存压缩文件,添加此命令删除
#恢复数据
xtrabackup --copy-back --target-dir=/backup/full/01
  1. 为目录添加权限

chmod -R 777 文件夹
参数-R是递归的意思
777表示开放所有权限
chmod +x 某文件
如果给所有人添加可执行权限:chmod a+x 文件名;
如果给文件所有者添加可执行权限:chmod u+x 文件名;
如果给所在组添加可执行权限:chmod g+x 文件名;
如果给所在组以外的人添加可执行权限:chmod o+x 文件名

  1. 启动mysql服务
service mysqld start

增量备份恢复

  1. 关闭数据库
service mysqld stop
  1. 清空mysql的数据目录(清空前请先备份相关目录)
  2. 准备全量备份的恢复文件
xtrabackup --prepare --apply-log-only --target-dir=/backup/full/01
#--prepare 表示准备
#--apply-log-only 表示不回滚事务 解释详见 https://blog.csdn.net/ActionTech/article/details/101695649
  1. 将增量备份文件加载至全量备份文件中
xtrabackup --prepare --target-dir=/backup/full/01 --incremental-dir=/backup/increment/01

apply-log-only在最后的一份备份文件准备时不需要设置

  1. 恢复数据(将全备复制到数据目录下)
xtrabackup --copy-back --target-dir=/backup/full/01
  1. 为目录添加权限

chmod -R 777 文件夹

  1. 启动mysql服务
service mysqld start

遇到的问题

  • Error: failed to execute query ‘LOCK INSTANCE FOR BACKUP’: 1227 (42000) Access denied; you need (at least one of) the BACKUP_ADMIN privilege(s) for this operation

通过看报错信息,发现是没有 BACKUP_ADMIN 权限导致的。
授权:
grant BACKUP_ADMIN on *.* to 'root'@'%';
刷新:
FLUSH PRIVILEGES;

  • Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: 无法打开共享对象文件: 没有那个文件或目录 at - line 1535.

ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘1234’;在这里插入图片描述

  • qpress: 未找到命令

安装解压缩工具
下载地址:http://www.quicklz.com/
在这里插入图片描述
解压
tar xvf qpress-11-linux-x64.tar
拷贝到/usr/bin
cp qpress /usr/bin
授权
chmod 755 /usr/bin/qpress

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值