码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL 8.0 Clone 备份恢复演练


    文章目录

    • 前言
      • 1. 恢复目标
      • 2. 环境说明
      • 3. 克隆数据
      • 4. 恢复全量数据
      • 5. 注册增量日志
      • 6. 应用增量日志
    • 后记

    前言

    上一篇文章中,我们介绍了使用 Clone 插件进行备份,相关的恢复流程将在本篇文章介绍。

    MySQL 8.0 Clone Plugin 详解

    恢复增量数据的方法,使用的是伪装为 relay log 通过多线程复制加速恢复的方式,之前有写过一个案例。

    MySQL 通过 MTS 多线程恢复增量日志备份

    1. 恢复目标

    从 OSS 中下载全量备份及 Binlog 备份,测试 Clone 备份的全量备份恢复与增量恢复,将数据恢复到一个新实例。

    2. 环境说明

    主机MySQL 版本用途
    172.16.104.568.0.32Clone 源库
    172.16.104.578.0.32Clone 恢复的目标库

    3. 克隆数据

    在 Clone 之前我们先查看一下演示表中有多少行数据:

    root@mysql 17:08:  [op_service_db]>select count(*) from task_queue;
    +----------+
    | count(*) |
    +----------+
    |    36280 |
    +----------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行 Clone 操作:

    CLONE LOCAL DATA DIRECTORY = '/data/clone_bak/20231106';
    
    • 1

    结束后,向测试表中写入 10w 行数据:

    mysql_random_data_load -h172.16.104.56 -u'my' -p'112233' --max-threads=10 op_service_db task_queue 100000
    
    • 1

    将 Clone 文件 scp 到 57 的目标实例:

    scp -r ./20231106/ root@172.16.104.57:/data
    
    • 1

    还有期间的 Binlog 文件也 scp 到目标实例:

    scp /data/mysql_80/logs/mysql-bin.000001 root@172.16.104.57:/data
    
    • 1

    演示只有一个 Binlog 如果有多个 Binlog 操作也比较简单,注册步骤添加多个文件即可。

    4. 恢复全量数据

    使用 clone 出来的数据替换 57 节点的数据目录,操作前需要停掉 MySQL。

    # 删除源目录
    rm -rf /data/mysql_80/data
    # 替换
    mv ./20231106 /data/mysql_80/data
    # 修改属组
    chown -R mysql:mysql /data/mysql_80/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    然后启动 MySQL 数据库。

    5. 注册增量日志

    这块主要是把需要跑的增量 Binlog 文件名,修改为 relay log 的格式。

    # 将 binlog 文件,按照 relay log 格式写入到 index 文件中
    cat mysql-relay.index
    
    /data/mysql_80/logs/mysql-relay.000001
    
    • 1
    • 2
    • 3
    • 4

    6. 应用增量日志

    创建复制通道:

    change master to 
        master_host='localhost',
        master_port=3306,
        MASTER_AUTO_POSITION=0,
        RELAY_LOG_FILE='mysql-relay.000001',
        RELAY_LOG_POS=4;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    查看 GTID 点位信息:

    root@mysql 17:39:  [(none)]>show master status\G
    *************************** 1. row ***************************
                 File: mysql-bin.000001
             Position: 14808235
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: eccc6b43-b0fc-11ed-8e74-fa0e3cc40b00:1-38
    eccc6b43-b0fc-11ed-8e74-fa0e3cc40b00:38
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    设置 SQL 线程,应用 eccc6b43-b0fc-11ed-8e74-fa0e3cc40b00:38 之后的 Event 操作。

    start slave until SQL_AFTER_GTIDS ='eccc6b43-b0fc-11ed-8e74-fa0e3cc40b00:38';
    
    • 1

    启动 SQL 线程:

    start slave sql_thread;
    
    • 1

    可以通过 show slave status\G 查看进度:

    Executed_Gtid_Set: 1b03028c-76f7-11ee-ac46-faa7cd9c6a00:1-4,
    eccc6b43-b0fc-11ed-8e74-fa0e3cc40b00:1-138
    
    • 1
    • 2

    至此,Clone 结束后写入的增量数据已经通过 Binlog 恢复到新实例:

    root@mysql 17:43:  [op_service_db]>select count(*) from task_queue;
    +----------+
    | count(*) |
    +----------+
    |   136280 |
    +----------+
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    后记

    基于 MySQL 8.0 克隆插件,我研发了一套自动化备份系统,可以管理线下所有 MySQL 集群的 Clone 备份和 Binlog 备份。

    在这里插入图片描述

    感兴趣可以看看,欢迎提问题提需求,欢迎 Pull Requests!

    https://github.com/COOH-791/mysql_clone_backup/tree/main

  • 相关阅读:
    浦惠钱包app拉新推广渠道 实时数据
    鄂州市高新技术企业申报奖励有哪些?除了资金还有别的好处吗?2022年申报材料以及申报流程有变化吗啊?
    python:自动获取当前系统的路径(windows+linux)、xlsx文件转换为csv文件
    赛芯电子冲刺科创板上市:拟募资6.23亿元,共有64项专利申请信息
    数据增强功能工具,选项功能对照表
    原生js实现轮播图及无缝滚动
    基于5G云网融合的车联网应用技术探讨
    polygon yolo
    Android C++系列:Linux文件IO操作(一)
    接口---默认方法
  • 原文地址:https://blog.csdn.net/qq_42768234/article/details/134287983
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号