当前位置: 首页 > news >正文

MySQL8的备份方案——差异备份(CentOS)

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

--defaults-file 备份数据库的时候需要参考的默认文件。默认为/etc/my.cnf只要位置不变,可以不写
--backup 备份的意思
--target-dir 备份后的文件放在哪里(最后一个文件夹会自动创建,但前面的文件夹要自己创建)
-u 备份时候使用的数据库身份(可不写,默认用root用户登录)
-p 备份时使用身份的密码(登录MySQL的密码)
-H 要备份哪台机器(可不写,默认为本机)
-P 备份工具所登录备份服务器的端口(可不写,默认为3306)
--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

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

  1. 添加数据后开始第二次差异备份,第二次差异备份参考全量(完全)备份(本文只生成两次差异本分,再往后每次的差异备份都参考全量(完全)备份)
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. 准备全量备份文件
xtrabackup --prepare \
--apply-log-only \
--target-dir=/data/backup/自定义全量备份文件夹名 \
--no-server-version-check

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

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

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

四、 恢复备份文件

  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'原密码'

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 最新 Docker 下载镜像超时解决方案:Docker proxy
  • 【Python数据分析】数据分析三剑客:NumPy、SciPy、Matplotlib中常用操作汇总
  • R语言学习笔记10-向量-矩阵-数组-数据框-列表对比
  • 神经网络中如何优化模型和超参数调优(案例为tensor的预测)
  • 【HarmonyOS开发】弹窗交互(promptAction )
  • opencv,连续拍摄多张图像求平均值减少噪点
  • 均值滤波算法及实现
  • Matlab演示三维坐标系旋转
  • Python基础语法篇(下)+ 数据可视化
  • 【Gin】精准应用:Gin框架中工厂模式的现代软件开发策略与实施技巧(上)
  • 前端表格解析方法
  • Python酷库之旅-第三方库Pandas(037)
  • 【iOS】内存对齐
  • Windows版MySQL5.7解压直用(如何卸载更换位置重新安装)
  • 六边形动态特效404单页HTML源码
  • [deviceone开发]-do_Webview的基本示例
  • CSS 三角实现
  • exports和module.exports
  • HTTP中的ETag在移动客户端的应用
  • k个最大的数及变种小结
  • Linux各目录及每个目录的详细介绍
  • Python - 闭包Closure
  • Spring Cloud中负载均衡器概览
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue总结
  • 利用DataURL技术在网页上显示图片
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何利用MongoDB打造TOP榜小程序
  • 实习面试笔记
  • 中文输入法与React文本输入框的问题与解决方案
  • Linux权限管理(week1_day5)--技术流ken
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​第20课 在Android Native开发中加入新的C++类
  • #{}和${}的区别?
  • #70结构体案例1(导师,学生,成绩)
  • #VERDI# 关于如何查看FSM状态机的方法
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (分享)自己整理的一些简单awk实用语句
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (排序详解之 堆排序)
  • (三)uboot源码分析
  • (三十五)大数据实战——Superset可视化平台搭建
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)React组件、useState、组件样式
  • (转)Sublime Text3配置Lua运行环境
  • . Flume面试题
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET MVC之AOP
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net 调用海康SDK以及常见的坑解释
  • .net 设置默认首页
  • @ComponentScan比较
  • @Pointcut 使用