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

完整教程:【MySQL】备份与恢复

​ MySQL 能恢复到半个月内任意一秒的状态,这是怎么做到的?它依赖:全量备份(状态快照) + 增量备份(Binlog 重放)。

1. 全量备份

​ 备份数据库全部的文件、数据库表、配置文件等。

​ 进行全量备份前,应始终作如下准备工作:检查备份服务器的磁盘空间,保证其可用空间大于数据库所占容量;检查 MySQL 服务器超时时间,防止时间过小导致备份中断;检查 MySQL 数据包大小限制参数;检查备份用户是否被赋予正当的权限;始终保证在系统负载较低的情况下进行备份。

​ 全量备份的主要实现方法可以分为全量逻辑备份和全量物理备份。

1.1 全量逻辑备份

​ 全量逻辑备份就是在备份时生成可以重建数据库的 SQL 语句,恢复时将这些 SQL 逐句执行。由于备份的是标准 SQL,因此只要是兼容 SQL 的数据库都可以对其进行恢复(仅需少量语法调整)。并且其灵活性较高,可以选择备份整个数据库、单个数据库、单个表,甚至只备份表结构或只备份数据。但是其在备份和恢复的速度上都远逊色于物理备份,因此对于中小型数据库更加适用。全量逻辑备份的常见方式有如下几种:

1.2 全量物理备份

​ 物理备份就是直接复制数据库的物理数据文件,由于其绕过了 MySQL Server 层,备份和恢复的速度都非常快。其缺点在于备份粒度较粗,并且恢复时依赖相同的硬件和 MySQL 版本。适用于数据量较大的数据库,追求最快的备份和恢复速度。

  • **Percona **

    ​ 最成熟的 MySQL 物理备份工具,由 Percona 公司开源且针对 InnoDB 实现热备份。

    ​ XtraBackup 的热备份实现原理与 mysqldump 完全不同,因为 XtraBackup 属于物理备份,它直接复制物理数据文件,无法依赖 MVCC 在备份开始时获取事务一致的视图。因此 XtraBackup 通过复制记录 Redo Log 来实现热备份,这个过程具体如下:

    ​ XtraBackup 在复制数据文件前记录 Redo Log 的当前 LSN,并使用一个后台线程持续追踪并复制 Redo Log 自备份开始后产生的新变化(必须复制走,因为 Redo Log 是循环日志,旧日志可能被新日志覆盖)。这些复制的 Redo Log 用于在后续重做备份过程中提交的事务。

    ​ XtraBackup 直接复制 InnoDB 的表空间文件(.ibd 和 ibdata)。由于不锁表,这些文件可能正在被修改,因此此时拷贝出来的数据文件可能包含未提交的事务,或者缺少已提交但尚未从日志刷新到数据文件的事务。这些事务依赖在上一步复制的 Redo Log 来重做,并使用 Undo Log 回滚。

    ​ 数据文件复制完成后,XtraBackup 短暂地为数据库加读锁,然后终止 Redo Log 的复制,并精确记录当前 Binlog 的坐标,之后解锁。

    ​ 备份完成后得到的数据文件需要经过一个独立的 “准备” 阶段,在这个阶段使用之前备份的 Redo Log 对 InnoDB 数据文件进行前滚(Redo)和回滚(Undo)。经过这个准备阶段,数据文件就达到了一个事务一致状态。使用 --apply-log 选项来开启准备阶段。

    ​ 需要注意的是,如果该全量备份后续还有增量备份(XtraBackup 也可以用于增量备份,后面会提到),使用 --apply-log 选项时必须搭配 --apply-log-only 选项,直到最后一条需要应用的增量备份。这表示在恢复数据时,直到所有目标数据都准备完毕,再使用 Undo Log 回滚未完成事务,这才是符合预期的。如果不加这个选项,那么前面的备份已经回滚了未完成事务,后续的备份可能包含这些事务的后续操作,这就会造成数据不一致。

    ​ 正确实例如下:

    # 准备阶段
    xtrabackup --prepare --apply-log-only --target-dir=/path/to/full_backup
    xtrabackup --prepare --apply-log-only --target-dir=/path/to/full_backup \
    --incremental-dir=/path/to/inc1
    xtrabackup --prepare --apply-log-only --target-dir=/path/to/full_backup \
    --incremental-dir=/path/to/inc2
    xtrabackup --prepare --apply-log-only --target-dir=/path/to/full_backup \
    --incremental-dir=/path/to/inc3
    xtrabackup --prepare --target-dir=/path/to/full_backup
    # 开始恢复
    xtrabackup --copy-back --target-dir=/path/to/full_backup

2. 增量备份

​ 增量备份只备份⾃上次备份以来发⽣变化的数据。可以是上次全量备份以后,也可以是上次增量备份以后。

2.1 增量逻辑备份

2.2 增量物理备份

  • Percona XtraBackup

    ​ XtraBackup 也可以进行增量备份,它通过比较数据页的 LSN 来识别该页数据是否发生变化。如果 LSN 大于上次备份的 LSN,说明该页发生了新的修改,重新备份该页,否则则直接跳过。

    ​ 具体的备份过程和 XtraBackup 的全量备份一致,都是靠一个后台线程持续复制 Redo Log 来实现热备份。

http://www.jsqmd.com/news/358054/

相关文章:

  • Vite+Vue3项目浏览器加载白屏(用其他浏览器又正常)
  • 2026年质量好的测温型火灾探测器/热成像火灾探测器生产厂家实力参考哪家强(更新) - 行业平台推荐
  • 2026年质量好的橡套电缆/控制电缆生产商推荐怎么选(可靠) - 行业平台推荐
  • 一波学员反馈,月入破2w+
  • 分析2026年安全阀检测台科技含量高的品牌,怎么选择比较好 - 工业品牌热点
  • AI元人文:多元共生与价值原语——DOS纠缠下的内观叙事与知行合一
  • 2026年源头钢平台厂家排名,这些品牌性价比高值得推荐 - 工业推荐榜
  • 2026年评价高的婴童罐塑料瓶/特医塑料瓶热门品牌推荐口碑排行 - 行业平台推荐
  • 2026年透明磨砂平口袋定制厂家选择指南,费用情况大揭秘 - mypinpai
  • GTE模型效果展示:多轮对话语义连贯性分析
  • 2026年好用的环卫容器品牌推荐,有美工贸满意度高值得选 - myqiye
  • 讲讲湖南讯灵AI功能是否齐全,湖南地区AI服务公司怎么选择 - 工业品牌热点
  • 诺达机械培训体系完善不,其主打产品在各地区口碑怎么样? - 工业设备
  • GTE中文文本嵌入模型效果展示:中文小说人物关系语义抽取
  • 2026年环保型家装电线品牌推荐,昂翡线缆满足安全环保需求 - 工业品网
  • RTX 4090用户福音:Anything to RealCharacters 2.5D转真人引擎安装即用体验报告
  • OFA-large模型效果展示:真实电商SKU图文不一致问题识别案例
  • 分析可靠的伸缩货架加工厂,看哪家口碑好? - 工业推荐榜
  • 2026年辽宁骏业消防工程有限公司排名,辽宁骏业消防工程上榜了吗 - myqiye
  • 2026年知名的木盒/木盒礼盒哪家好销售厂家推荐 - 行业平台推荐
  • 【基于MapReduce的超市销售数据分析平台】(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • watchdog看门狗原理(史上最全):业务没完,锁过期咋整?Redis锁如何自动续期? 说说 看门狗原理 ?
  • 2026年比较好的木盒/工艺品木盒工厂采购指南如何选(实用) - 行业平台推荐
  • (10-3-02)模块集成与总装流程:接线、布线与抗干扰设计:接口标准化
  • 探讨2026年FRP采光瓦选购指南,靠谱厂商排名大揭秘 - 工业品网
  • 2026年质量好的葫芦通过式抛丸机/铝型材抛丸机生产厂家采购指南帮我推荐几家 - 行业平台推荐
  • 2026年比较好的螺钉/不锈钢自攻螺钉口碑排行实力厂家口碑参考 - 行业平台推荐
  • 细聊有实力的眼镜城入驻商家,杭州镜视界性价比高的是哪家 - 工业设备
  • 2026年热门的门富士定型机配件/专业生产定型机配件制造厂家推荐哪家靠谱 - 行业平台推荐
  • 2026年评价高的水泵拉伸件/拉伸件实用供应商采购指南如何选 - 行业平台推荐