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


    目录

    一、MySQL完全备份与恢复

    1、数据库备份的重要性

    2、数据库备份的分类

    2.1 物理备份

    2.2 逻辑备份

    3、MySQL完全备份与恢复

    3.1 使用tar打包文件夹备份

    3.2 使用mysqldump工具备份

     3.3 MySQL完全恢复

     二、MySQL增量备份与恢复

    1、增量备份的特点

    2、实现增量备份

    2.1 开启二进制日志功能

    2.2 重启服务,查看二进制文件内容

     2.3 进行完全备份并更新二进制日志

     3.实现增量恢复

    3.1 删除表test1

     3.2 基于二进制日志文件恢复

     3.3 查看test库

     3.4 断点恢复


    一、MySQL完全备份与恢复

    1、数据库备份的重要性

    • 提高系统的高可用性和灾难可恢复性
    • 在生产环境中,数据的安全性至关重要
    • 任何数据的丢失都可能产生严重的后果
    • 在使用数据库的过程中,有多种原因造成数据的丢失:
      ①程序错误
      ②人为错误:误操作或被攻击
      ③磁盘故障
      ④灾难 :火灾、地震和盗窃

    2、数据库备份的分类

    2.1 物理备份

    • 冷备份 (脱机备份) :是在关闭数据库的时候进行的
    • 热备份 (联机备份) :数据库处于运行状态,依赖于数据库的日志文件
    • 温备份 :数据库锁定表格(不可写入但可读)的状态下进行备份操作

    2.2 逻辑备份

    • 完全备份:每次对数据进行完整备份,即对整个数据库、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础完全备份的备份与恢复操作都非常简单方便,但是数据存在大量的重复并且会占用大量的磁盘空间,备份的时间也很长

    • 差异备份:备份那些自从上次完全备份之后被修改过的所有文件,备份的时间节点是从上次完整备份起,备份数据量会越来越大。恢复数据时只需要恢复上次的完全备份与最佳的一次差异备份

    • 增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份

    备份方式完全备份差异备份增量备份
    完全备份时的状态表1、表2表1、表2表1、表2
    第一次添加内容创建表3创建表3创建表3
    备份内容表1、表2、表3表3表3
    第二次添加内容创建表4创建表4创建表4
    备份内容表1、表2、表3、表4表3、表4表4

    3、MySQL完全备份与恢复

    3.1 使用tar打包文件夹备份

    1. tar -jcf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/
    2. ls /opt/
    3. mysql-2022.09.18.tar.xz
    4. du -sh data/
    5. 134M data/
    6. du -sh /opt/mysql-2022.09.18.tar.xz
    7. 852K /opt/mysql-2022.09.18.tar.xz

    3.2 使用mysqldump工具备份

    3.2.1 备份yyh库

    mysqldump -u root -p[密码] --databases 库名1 [库名2] ... > /备份路径/备份文件名.sql 

     3.2.2 备份yyh库下yyh表

     3.2.3 备份所有库

     3.2.4 只备份yyh库下yyh表的结构

     3.3 MySQL完全恢复

    3.3.1 source命令恢复整库

     

     3.3.2 mysql命令整库恢复

     

     

     二、MySQL增量备份与恢复

    1、增量备份的特点

    • 一般恢复
      将所有备份的二进制日志内容全部恢复

    • 基于位置恢复
      数据库在某一时间点可能既有错误的操作也有正确的操作
      可以基于精准的位置跳过错误的操作
      发生错误节点之前的一个节点,上一次正确操作的位置点停止

    • 基于时间点恢复
      跳过某个发生错误的时间点实现数据恢复
      在错误时间点停止,在下一个正确时间点开始

    2、实现增量备份

    2.1 开启二进制日志功能

     二进制日志(binlog)有3种不同的记录格式: STATEMENT (基于SQL语句)、ROW(基于行)、MIXED(混合模式),默认格式是STATEMENT

    • STATEMENT(基于SQL语句):
      每一条涉及到被修改的sql 都会记录在binlog中

    • ROW(基于行)
      只记录变动的记录,不记录sql的上下文环境

    • MIXED 推荐使用
      一般的语句使用statement,函数使用ROW方式存储。

    2.2 重启服务,查看二进制文件内容

     2.3 进行完全备份并更新二进制日志

     3.实现增量恢复

    3.1 删除表test1

     3.2 基于二进制日志文件恢复

     3.3 查看test库

     3.4 断点恢复

     

     

  • 相关阅读:
    【数据结构与算法】单链表的增删查改(代码+图解)
    YOLOV7量化第二步: 模型标定
    PTL货位指引标签为仓储管理打开新思路
    面试:CAS算法原理
    Web Audio API 第6章 高级主题
    变电站人员安全定位管理方案介绍
    【数字IC手撕代码】Verilog轮询仲裁器|题目|原理|设计|仿真
    7 月 2 日邀你来TD Hero 线上发布会
    纯干货内容:关于ivx和mendix的对比 还在犹豫选择那个低代码平台的小伙伴看过来
    “随机森林”及“混合随机森林和多目标粒子群优化”(RF_MOPSO),以预测目标作为学习方法并分别找到多特征过程的最佳参数(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/weixin_71429844/article/details/126924110
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号