下载工具

本方法利用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. JS:Boolean

    Boolean数据类型: 有两个值:true false Boolean会把不是Boolean的值变为Boolean值 var a = 1; var b = true; var c = 0; var ...

  2. NC14585 大吉大利,今晚吃鸡

    NC14585 大吉大利,今晚吃鸡 题目 题目描述 糖和抖m在玩个游戏,规定谁输了就要请谁吃顿大餐:抖m给糖a b c三个驻, 并在a柱上放置了数量为n的圆盘,圆盘的大小从上到下依次增大,现在要做的事 ...

  3. Pytorch从0开始实现YOLO V3指南 part1——理解YOLO的工作

    本教程翻译自https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/ 视频展示:https://w ...

  4. Oracle查看所有用户及其权限

    Oracle查看所有用户及其权限:Oracle数据字典视图的种类分别为:USER,ALL 和 DBA. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息 ALL_*:有关用户可以访问的 ...

  5. Object类和toString方法 --和Object类的equals方法

    一,Object类概述:Object是类层次结构的根,每个类都可以将Object作为超类,所有类都直接或者间接的继承自该类构造方法:pulic Object()在面向对象中,子类要访问父类的无参构造方 ...

  6. 提名 Apache ShardingSphere Committer,说说方法

    文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 就在前几天,收到了 Apache ShardingSphere Vote 我成为 Committer 的邮件 ...

  7. Python 中的"self"是什么

    在使用 pycharm 编写 Python 时,自动补全总会把函数定义的第一个参数定义为 self .遂查,总结如下: self 大体上和静态语言如 Java 中的 this 关键字类似,用于指代实例 ...

  8. Calendar类介绍_获取对象的方式和Calendar类的常用成员方式

    java.util.Calendar是日历类,在Date后出现,替换掉了许多Date方法.该类将所有可能用到的时间信息封装为静态成员变量,方便获取.日历类就是方便获取各个时间属性的. Calendar ...

  9. 20220716-Markdown语法学习

    目录 1.标题部分 2.目录 3.字体部分 4.引用 5.列表 6.代码块 7.表格 8.脚注 9.水平线 效果: 10.引用链接 11.URLs 12.图片 13.emoji 效果: 14.html ...

  10. LevelSequence源码分析

    前言 这篇文章主要讲的是Unreal LevelSequence RunTime的部分.即在游戏中运行Level Sequence的源码解析.(而且抛去Replicated 的Sequence,一般S ...