MySQL8的备份方案——增量备份(CentOS)

MySQL8的增量备份

点击跳转全量(完全)备份

点击跳转差异备份

点击跳转压缩备份

一、安装备份工具

官网
下载地址

备份所用工具为percona-xtrabackup

如果下方安装工具的教程失效,请点击上方下载地址转到官方文档查看

  1. 下载该工具的yum仓库
bash 复制代码
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  1. 启用该仓库
bash 复制代码
percona-release enable-only tools release
  1. 下载mysql的对应版本工具(本文章编写时为83版本,最新版请查看官方文档)

    如果安装失败,看一下yum源是否是官方的,如果是请更换yum源(一定要有epel,否则可能依旧失败),官方Centos9一下的yum源已停止维护,可能会缺失依赖

    MySQL8.3以上

    bash 复制代码
    yum install -y percona-xtrabackup-83

    MySQL8.0至8.3

    bash 复制代码
    yum install -y percona-xtrabackup-80

    MySQL( 5.1、5.5、5.6 、5.7 )

    bash 复制代码
    yum install -y percona-xtrabackup-24

4.安装相关软件包:lz4 zstd

bash 复制代码
yum install -y lz4 zstd

二、备份数据

增量备份依赖于之前的备份。在首次进行增量备份之前,需要有一个全量(完全)备份作为基础。之后的每次增量备份都只会备份自上次备份以来发生变化的数据。

  1. 创建备份文件夹,存放备份文件
bash 复制代码
mkdir -p /date/backup
  1. 开始备份,增量备份前需要完成一次全量备份
bash 复制代码
xtrabackup --defaults-file=/etc/my.cnf \
--backup \
--target-dir=/data/backup/自定义全量备份文件夹名 \
-uroot -p'密码' \
--no-server-version-check

--defaults-file 备份数据库的时候需要参考的默认文件。默认为/etc/my.cnf只要位置不变,可以不写
--backup 备份的意思
--target-dir 备份后的文件放在哪里(最后一个文件夹会自动创建,但前面的文件夹要自己创建)
-u 备份时候使用的数据库身份(可不写,默认用root用户登录)
-p 备份时使用身份的密码(登录MySQL的密码)
-H 要备份哪台机器(可不写,默认为本机)
-P 备份工具所登录备份服务器的端口(可不写,默认为3306)
--no-server-version-check 不对服务版本进行校验(如果看见报错一定要加,报错最后一行的末尾会写这条命令)

每次运行该命令,最后一行代码的最后两个单词为completed OK!就表示备份成功

  1. 第一次增量备份开始,第一次增量备份要参考全量备份
shell 复制代码
xtrabackup --backup \
--target-dir=/data/backup/`date +%F_%T`.inc \
--incremental-basedir=/data/backup/自定义全量备份文件夹名\
-p'密码' \
--no-server-version-check

--target-dir 这后面是增量备份的文件夹路径,不要与全量备份放在一个文件夹下
--incremental-basedir 增量备份参照的文件(参照谁进行增量)

  1. 添加数据后开始第二次增量备份,第二次增量备份是参考上一次的增量备份(本文只生成两次增量本分,再往后每次的增量备份都参考上一次的备份)
bash 复制代码
xtrabackup --backup \
--target-dir=/data/backup/`date +%F_%T`.inc \
--incremental-basedir=/data/backup/上一次的增量备份文件夹名\
-p'密码' \
--no-server-version-check

可以写个脚本,添加定时任务每天备份一次,把date +%F_%T.inc改为date +%F.inc

三、准备恢复所需的备份数据

准备备份文件,因为增量备份每次只备份自上次备份以来的变更内容,所以要恢复到最新,需要把每个备份都准备一下

  1. 准备全量备份文件
bash 复制代码
xtrabackup --prepare \
--apply-log-only \
--target-dir=/data/backup/自定义全量备份文件夹名 \
--no-server-version-check

--prepare 开始准备要恢复的备份文件
--apply-log-only 表示这次的准备是不完整的,后面还要追加

  1. 准备第一次增量备份文件
bash 复制代码
xtrabackup --prepare \
--apply-log-only \
--target-dir=/data/backup/自定义全量备份文件夹名 \
--incremental-dir=/data/backup/自定义增量备份文件夹名 /
--no-server-version-check

--target-dir 这里表示的是准备好的文件存放位置,最终恢复时用的就是这个路径
--incremental-dir 增量备份的文件夹路径(表示本次要准备该文件夹下的内容)

  1. 准备第二次增量备份文件
    最后一个备份文件准备时不要加--apply-log-only,表示准备已完成,下一步就可以进行恢复了
bash 复制代码
xtrabackup --prepare \
--target-dir=/data/backup/自定义全量备份文件夹名 \
--incremental-dir=/data/backup/自定义增量备份文件夹名 /
--no-server-version-check

四、 恢复备份文件

  1. 恢复前先确保/var/lib/mysql/文件夹下是空的,否则无法恢复
bash 复制代码
rm -rf /var/lib/mysql/*
  1. 恢复
bash 复制代码
xtrabackup --copy-back --target-dir=/date/backup/自定义全量备份文件夹名
  1. 添加权限
bash 复制代码
chown mysql.mysql -R /var/lib/mysql/*
  1. 重启MySQL服务
bash 复制代码
systemctl restart mysqld
  1. 登录测试()
bash 复制代码
mysql -uroot -p'原密码'
相关推荐
dreamczf18 分钟前
基于Linux系统的边缘智能终端(RK3568+EtherCAT+PCIe+4G+5G)
linux·人工智能·物联网·5g
wayuncn24 分钟前
哈尔滨服务器租用的流程
运维·服务器
钡铼技术物联网关40 分钟前
导轨式ARM工业控制器:组态软件平台的“神经中枢”
linux·数据库·人工智能·安全·智慧城市
blasit2 小时前
keil 5 MDK 安装失败提示Cannot create destination file."文件名、目录名或卷标语法不正确"
运维·程序员·如何当个好爸爸
fanxiaohui121382 小时前
元脑服务器的创新应用:浪潮信息引领AI计算新时代
运维·服务器·人工智能
若云止水3 小时前
Ubuntu 下 nginx-1.24.0 源码分析 - cycle->modules[i]->ctx
linux·nginx·ubuntu
亦世凡华、3 小时前
快速部署:在虚拟机上安装 CentOS 7 的详细步骤
linux·运维·经验分享·centos·安装教程
Elastic 中国社区官方博客3 小时前
使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack
大数据·linux·服务器·elasticsearch·搜索引擎·信息可视化·debian
星图辛某人3 小时前
《Linux命令行和shell脚本编程大全》第四章阅读笔记
linux·运维·笔记