码农知识堂 - 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 断点恢复

     

     

  • 相关阅读:
    Java之Collention集合
    scratch颜色搭配 电子学会图形化编程scratch等级考试四级真题和答案解析2022年9月
    java入门
    计算机视觉与深度学习-经典网络解析-AlexNet-[北邮鲁鹏]
    pytorch autograd 自动微分
    HCIA-Access V2.5 华为认证接入网络工程师学习笔记第二章
    无胁科技-TVD每日漏洞情报-2022-10-28
    如何使用SHC对Shell脚本进行封装和源码隐藏
    深入了解iOS内存(WWDC 2018)笔记-内存诊断
    shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键
  • 原文地址:https://blog.csdn.net/weixin_71429844/article/details/126924110
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号