0
点赞
收藏
分享

微信扫一扫

CentOS快速安装Docker(腾讯镜像源)

時小白 2024-07-24 阅读 6

MySQL8的差异备份

点击跳转全量(完全)备份
点击跳转增量备份
点击跳转压缩备份

一、安装备份工具

官网
下载地址
备份所用工具为percona-xtrabackup
如果下方安装工具的教程失效,请点击上方下载地址转到官方文档查看

  1. 下载该工具的yum仓库
yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
  1. 启用该仓库
percona-release enable-only tools release
  1. 下载mysql的对应版本工具(本文章编写时为83版本,最新版请查看官方文档)
    如果安装失败,看一下yum源是否是官方的,如果是请更换yum源(一定要有epel,否则可能依旧失败),官方Centos9一下的yum源已停止维护,可能会缺失依赖

    MySQL8.3以上

    yum install -y percona-xtrabackup-83
    

    MySQL8.0至8.3

    yum install -y percona-xtrabackup-80
    

    MySQL( 5.1、5.5、5.6 、5.7 )

    yum install -y percona-xtrabackup-24
    

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

yum install -y lz4 zstd

二、备份数据

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

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

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

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

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

准备备份文件,因为差异备份每次都备份第一次全量(完全)备份以来的变更内容,所以要恢复到最新,只需要把第一个全量(完全)备份和最后一个差异备份准备一下

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

四、 恢复备份文件

  1. 恢复前先确保/var/lib/mysql/文件夹下是空的,否则无法恢复
rm -rf /var/lib/mysql/*
  1. 恢复
xtrabackup --copy-back --target-dir=/date/backup/自定义全量备份文件夹名
  1. 添加权限
chown mysql.mysql -R /var/lib/mysql/*
  1. 重启MySQL服务
systemctl restart mysqld
  1. 登录测试()
mysql -uroot -p'原密码'
举报

相关推荐

0 条评论