【Mysql】Xtrabackup备份恢复(Mysql5.6/5.7/8.0)

目录

一、前言

二、Mysql8.0为例

1、安装Xtraback工具

1)mysql8.0.x版本

2)mysql5.6、5.7版本

2、备份操作

3、恢复操作


一、前言

官网下载地址:Software Downloads - Percona

本测试环境:centos_x86、mysql8.0.39、mysql5.7.x、引擎Innodb

版本区别:

xtrabackup 8.0 支持MySQL8.0版本

xtrabackup 2.4 支持MySQL5.6、5.7版本、MariDB10.1、10.2版本

二、Mysql8.0为例

1、安装Xtraback工具

1)mysql8.0.x版本

bash 复制代码
#安装依赖
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync perl  perl-Digest-MD5
#获取xtrabackup8.0包
wget -c https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.35-31.1.el7.x86_64.rpm
#安装
rpm -ivh percona-xtrabackup-83-8.3.0-1.1.el7.x86_64.rpm

如果无外网,本博主提供下载地址如下,包含所依赖rpm包(根据centos7_x86):

链接: 百度网盘 请输入提取码 提取码: 5jkt

2)mysql5.6、5.7版本

bash 复制代码
#安装依赖
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync perl  perl-Digest-MD5
#获取xtrabackup8.0包
wget -c https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.29-1.el7.x86_64.rpm
#安装
rpm -ivh percona-xtrabackup-24-2.4.29-1.el7.x86_64.rpm

如果无外网,本博主提供下载地址如下,包含所依赖rpm包(根据centos7_x86):

链接: 百度网盘 请输入提取码 提取码: 5jkt

2、备份操作

#在备份期间,xtrabackup会运行一个后台进程,用于监视事务日志,并从事务日志复制最新的修改。

bash 复制代码
#创建备份目录
mkdir -p /data/bakup_sql/20240815
#--defaults-file指定my.cnf路径,--user指定用户,--password指定密码,--host指定节点,--port指定端口,--backup指定备份操作,--target-dir指定备份路径
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --backup --target-dir=/data/bakup_sql/20240815

3、恢复操作

#InnoDB表数据回滚到整个备份结束的点,而不是回滚到xtrabackup刚开始时的点。需停掉mysql进行回滚操作

bash 复制代码
#perpaer操作。备份完的数据存在未提交的事务和已提交未同步到数据文件的事务,需要执行prepare步骤,重做已提交事务,回滚未提交事务,使数据文件保持一致性,target-dir指定备份的目录
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --prepare --target-dir=/data/bakup_sql/20240815
#回滚数据。datadir指定mysql存储数据目录,必需为空,target-dir为备份数据目录
mv /data/mysql/data /data/mysql/data_bak
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --copy-back --datadir=/data/mysql/data --target-dir=/data/bakup_sql/20240815

4、海量数据备份优化

bash 复制代码
#对于数据量大,可添加一下参数进行备份
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --compress-threads=8 --backup --stream=xbstream --parallel=4 | gzip > /data/backup_sql/20240815/mysqlsql.xb.gz

#回滚操作。
#解压至/data/backup_sql/20240815/sql
gzip -d -c /data/backup_sql/20240815/mysqlsql.xb.gz| xbstream -x -v -C /data/backup_sql/20240815/sql
#备份原来mysql数据目录
mv /data/mysql/data /data/mysql/data_bak
#preare操作
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --prepare --target-dir=/data/bakup_sql/20240815/sql
#开始回滚
xtrabackup --defaults-file=/usr/local/mysql/my.cnf --user=weiyun --password=weiyun@123 --host=127.0.0.1 --port=3306 --copy-back --datadir=/data/mysql/data --target-dir=/data/bakup_sql/20240815/sql
相关推荐
骇客野人6 小时前
mysql笛卡尔积怎么形成的怎么避免笛卡尔积
数据库·mysql
m0_564264187 小时前
IDEA DEBUG调试时如何获取 MyBatis-Plus 动态拼接的 SQL?
java·数据库·spring boot·sql·mybatis·debug·mybatis-plus
隐语SecretFlow8 小时前
隐语SecreFlow SCQL 1.0.0b1 发布:更完善的 SQL 支持与更高效的隐私查询引擎
数据库·sql
ttghgfhhjxkl8 小时前
文档搜索引擎搜索模块的索引更新策略:实时增量与全量重建设计
数据库·搜索引擎
老华带你飞9 小时前
机器人信息|基于Springboot的机器人门户展示系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·机器人·论文·毕设·机器人门户展示系统
StarRocks_labs9 小时前
StarRocks 在 Cisco Webex 的探索与实践
数据库·starrocks·json·存算分离·olap 技术栈
notion20259 小时前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
unicrom_深圳市由你创科技9 小时前
用 CTE 重构嵌套子查询:让复杂报表 SQL 可读性提升 80%
mysql·重构
楚枫默寒9 小时前
mongodb备份脚本(单机+副本集)
数据库
小蒜学长10 小时前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端