下载工具

本方法利用xtrabackup二进制包,版本是2.4.26

# 从官网下载二进制包:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/tarball/percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12.tar.gz


#解压二进制包:
tar -zxvf percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12.tar.gz

#移动目录:
mv percona-xtrabackup-2.4.26-Linux-x86_64.glibc2.12 /usr/local/xtrabackup

#配置PATH:
vim /etc/profile

#写下如下内容
export PATH=$PATH:/usr/local/xtrabackup/bin

#使其生效
source /etc/profile

#软链接
ln -s /usr/local/xtrabackup/bin/innobackupex /usr/bin/innobackupex

确定文件

使用备份工具xtrabackup,首先该工具要和mysql在同一个服务器上,并且要知道如下内容才可使用备份功能

# 1.配置文件路径:my.cnf 或者 mysqld.cnf
# 7.mysql数据文件夹路径:data
# 2.连接地址:如果是装在宿主机则填 127.0.0.1, 如果是装在容器则填容器网关
# 3.端口:3306 或其它
# 4.超级账号的账户:root 或其它
# 5.超级账号的密码:123456 或其它
# 6.socket文件:mysql.sock 或者 mysqld.sock

开始备份

因为增量备份是基于全量备份上进行的差额备份,所以先要有一次全量备份

1.全量备份

# 参数说明, innobackupex是xtrabackup的符号链接
innobackupex --defaults-file=[mysql配置文件路径] \
--datadir=[mysql数据文件夹路径] \
--host=[mysql连接地址] \
--port=[mysql端口] \
--user=[mysql备份账号名称] \
--password=[mysql备份账号密码] \
--socket=[用于连接mysql的socket文件] \
[指定备份存放路径]

# 操作例子如下, 指定全量备份路径在 /backup/full
innobackupex --defaults-file=/home/database/mysql-5.7/conf \
--datadir='/home/database/mysql-5.7/data' \
--host='127.0.0.1' \
--port=3306 \
--user=root \
--password='abc1234' \
--socket='/home/database/mysql-5.7/data/mysql.sock' \
/backup/full

# 备份好会出现 completed OK! 的字样, 按照例子出现的全量备份文件夹路径如下
/backup/full/2022-08-30_14-20-55

2.增量备份

第一次增量备份是基于第一次全量备份上操作的

# 参数说明
innobackupex --defaults-file=[mysql配置文件路径] \
--datadir=[mysql数据文件夹路径] \
--host=[mysql连接地址] \
--port=[mysql端口] \
--user=[mysql备份账号名称] \
--password=[mysql备份账号密码] \
--socket=[用于连接mysql的socket文件] \
--incremental-basedir=[指定前一次备份的目录] \
--incremental=[指定增量备份存放的文件路径]

# 操作例子如下
innobackupex --defaults-file=/home/database/mysql-5.7/conf \
--datadir='/home/database/mysql-5.7/data' \
--host='127.0.0.1' \
--port=3306 \
--user=root \
--password='abc1234' \
--socket='/home/database/mysql-5.7/data/mysql.sock' \
--incremental-basedir=/backup/full/2022-08-30_14-20-55 \
--incremental /backup/inc

# 备份好会出现 completed OK! 的字样, 按照例子出现的第一次增量备份文件夹路径如下
/backup/inc/2022-08-30_14-29-07

第二次增量备份是基于前一次增量备份上操作的

# 操作例子如下
innobackupex --defaults-file=/home/database/mysql-5.7/conf \
--datadir='/home/database/mysql-5.7/data' \
--host='127.0.0.1' \
--port=3306 \
--user=root \
--password='abc1234' \
--socket='/home/database/mysql-5.7/data/mysql.sock' \
--incremental-basedir=/backup/inc/2022-08-30_14-29-07 \
--incremental /backup/inc

# 备份好会出现 completed OK! 的字样, 按照例子出现的第二次增量备份文件夹路径如下
/backup/inc/2022-08-30_14-34-11

备份文件路径

上述三个操作的文件路径如下:

全量备份:/backup/full/2022-08-30_14-20-55
增量备份1:/backup/inc/2022-08-30_14-29-07
增量备份2:/backup/inc/2022-08-30_14-34-11

开始还原

1.停止数据库
# 不允许mysql进程存在
/etc/init.d/mysqld stop
ps aux |grep "mysqld"
kill -9 xxxx


2.移除mysql原有数据
# 创建一个新文件夹,移走原有data数据
mkdir -p /home/database/mysql-5.7/data_bak
mv /home/database/mysql-5.7/data/* /home/database/mysql-5.7/data_bak/


3.合并增量备份
# 先初始化全量
innobackupex --apply-log --redo-only [全量备份目录]
# 例子如下
innobackupex --apply-log --redo-only /backup/full/2022-08-30_14-20-55



# 初始化第一次增量
innobackupex --apply-log --redo-only [全量备份目录] --incremental-dir=[第一次增量备份目录]
# 例子如下
innobackupex --apply-log --redo-only /backup/full/2022-08-30_14-20-55 --incremental-dir=/backup/inc/2022-08-30_14-29-07/


# 初始化第二次增量, 因为这是最后一次增量, 所以不需要 --redo-only 参数
innobackupex --apply-log [全量备份目录] --incremental-dir=[第二次增量备份目录]
# 例子如下
innobackupex --apply-log /backup/full/2022-08-30_14-20-55 --incremental-dir=/backup/inc/2022-08-30_14-34-11


# 再初始化一次全量, 不需要 --redo-only 参数
innobackupex --apply-log [全量备份目录]
# 例子如下
innobackupex --apply-log /backup/full/2022-08-30_14-20-55


# 执行还原, 复制所有的备份到他们原来的位置
innobackupex --datadir=[mysql数据文件夹路径] --copy-back [执行还原需要的全量备份目录]
# 例子如下
innobackupex --datadir='/home/database/mysql-5.7/data' --copy-back /backup/full/2022-08-30_14-20-55


# 还原好会出现 completed OK! 的字样,此时重启 mysql 即可看到恢复的数据
 

xtrabackup增量备份MySQL-5.7操作说明的更多相关文章

  1. xtrabackup增量备份mysql +MHA

    http://blog.csdn.net/yanggd1987/article/category/2214421 https://www.centos.bz/2013/09/innobackupex- ...

  2. mysql xtrabackup增量备份

    mysql 增量备份策略 周一全备,其他增量备份,根据业务需要,设定保留日期,如保留一月. 增量备份步骤; 1 创建全备 2 根据全备目录,创建增量备份 3 第二次增量备份根据第一次增量备份目录,依次 ...

  3. XtraBackup增量备份

    mysql:5.6.29xtrabackup:2.2.10mysql数据目录:/data/mysqlmysql备份目录:/data/dbbak/ #确保有足够的磁盘空间 官方文档:https://ww ...

  4. innobackupex 备份 Xtrabackup 增量备份

    Mysql增量备份Xtrabackup中包含两个工具:•        xtrabackup - 用于热备份innodb, xtradb表的工具,不能备份其他表(MYISAM表).•        i ...

  5. Xtrabackup 增量备份 和 增量还原

    目录 测试数据准备 进行全量备份 第一次增量插入一条数据 进行第一次增量备份 注意 第二次增量插入一条数据 进行第二次增量备份 注意 查看xtrabackup_binlog_info中的binlog位 ...

  6. xtrabackup 增量备份(InnoDB)

    mysql> select * from users; +----+-----------+----------+--------------+ | id | name | password | ...

  7. 16、xtrabackup 增量备份及恢复

    备份命令如下 备份命令如下 全量备份 #  innobackupex -p123123 /backup # ls /backup 2017-04-08_13-36-11 增量备份或差量备份 # inn ...

  8. 完整和增量备份MySQL脚本

    本文档采用mysqldump 对数据库进行备份,mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法 ...

  9. shell脚本 binlog方式增量备份mysql

    一.简介 源码地址 日期:2018/4/12 介绍:复制Binlog日志方式的增量备份脚本,并保存固定天数的备份 效果图: 二.使用 适用:centos6+ 语言:中文 注意:使用前先修改脚本中变量 ...

随机推荐

  1. 2.如何正确理解古典概率中的条件概率《zobol的考研概率论教程》

    写本文主要是帮助粉丝理解考研中的古典概率-条件概率的具体定义. "B事件发生的条件下,A事件发生的概率"? "在A集合内有多少B的样本点"? "在B约 ...

  2. BUUCTF-签到题

    签到题 很简单写在介绍里面了.

  3. 引入gitlab仓库代码到npm包的教程

    背景介绍 随着人类地发展,社会地进步,计算机技术地更新迭代,每一片码海里都有它宝贵的财富,每一座码山里都有着各自的秘密.怎么守住财富,隐藏一些秘密,成了一些开发人员所关心的事情. 需求分析 简单地说, ...

  4. Python|range函数用法完全解读

    写在前面的一些过场话: 迭代器是 23 种设计模式中最常用的一种(之一),在 Python 中随处可见它的身影,我们经常用到它,但是却不一定意识到它的存在.在关于迭代器的系列文章中(链接见文末),我至 ...

  5. p_b_p_b 杂题选讲

    [ARC119F] AtCoder Express 3 [ARC117F] Gateau 考虑二分答案,对前缀和建差分约束 \(\text{check}\) ,但是用 \(\text{spfa}\) ...

  6. C# MVCapi跨域问题

     he 'Access-Control-Allow-Origin' header contains multiple values ', *', but only one is allowed. Or ...

  7. springboot 中如何正确在异步线程中使用request

    起因: 有后端同事反馈在异步线程中获取了request中的参数,然后下一个请求是get请求的话,发现会偶尔出现参数丢失的问题. 示例代码: @GetMapping("/getParams&q ...

  8. Note -「模拟退火」

    随机化算法属于省选芝士体系 0x01 前置芝士 你只需要会 rand 就可以啦! 当然如果你想理解的更透彻也可以先看看 爬山算法 0x02 关于退火 退火是一种金属热处理工艺,指的是将金属缓慢加热到一 ...

  9. @Document注解与Lombok的区别

  10. ajax03_跨域访问问题

    ajax跨域访问问题 什么是跨域访问 从一个域名去访问另一个域名的资源 或者从一个站点去访问另一个站点的资源 哪些请求方式可以发送跨域请求 超链接 form表单 传统js代码 javascript标签 ...