本文全面解析MySQL 8.4的备份与恢复机制,涵盖备份类型、方法、策略及实际操作示例。


一、备份类型解析

1. 物理(原始)备份 vs 逻辑备份
特性物理备份逻辑备份
原理直接复制数据库目录/文件(如数据文件、日志)导出逻辑结构(CREATE语句)和内容(INSERT语句或文本)
速度⚡ 极快(仅文件复制)⚠️ 较慢(需数据转换和传输)
输出大小✅ 紧凑⚠️ 较大(尤其文本格式)
适用场景大型关键数据库,需快速恢复中小数据量,需修改结构或跨平台迁移
粒度文件级(依赖存储引擎,如InnoDB单表或共享文件)服务器/数据库/表级
工具mysqlbackupcprsync xtrbackupmysqldumpSELECT ... INTO OUTFILE
恢复工具mysqlbackup(InnoDB)、文件命令(MyISAM)mysql客户端(SQL格式)、LOAD DATA(文本格式)
MEMORY表支持❌ 内容不落盘(企业版可部分支持)✅ 完全支持
可移植性❌ 需相似硬件环境✅ 机器无关

关键差异:物理备份通过文件复制实现高效恢复;逻辑备份通过SQL语句实现灵活迁移。


2. 在线(热)/离线(冷)备份
类型特点
在线备份- 服务运行中,客户端可连接
- 需锁定保证一致性(如企业版自动锁)
离线备份- 服务停止,简单无干扰
- 通常从副本执行避免主库停机

注意:恢复操作比备份需要更严格锁定,可能影响客户端访问。


3. 其他备份维度
  • 本地/远程备份mysqldump可远程操作;物理备份通常需本地执行。
  • 快照备份:利用LVM/ZFS等文件系统快照(MySQL不自带)。
  • 全量/增量备份
    • 全量:备份特定时间点所有数据。
    • 增量:通过二进制日志(Binary Log)记录变更(需启用 --log-bin)。
  • 时间点恢复:全量恢复 + 应用增量二进制日志实现精确恢复。

二、备份方法实践

1. 使用MySQL企业版备份(物理备份)
# 备份整个实例(InnoDB热备,其他引擎温备)
$> mysqlbackup --backup-dir=/backup backup

优势:支持压缩/增量备份,恢复速度远超逻辑备份。

2. 使用mysqldump(逻辑备份)
# 全库备份(InnoDB无锁,周日13点执行)
$> mysqldump --all-databases --source-data=2 --single-transaction > full_backup.sql# 仅备份特定表
$> mysqldump db1 table1 table2 > tables.sql

关键选项--single-transaction(InnoDB一致性读)、--flush-logs(刷新日志)。

3. 增量备份策略
# 刷新日志开启新binlog(周一13点)
$> mysqladmin flush-logs
# 备份前一个binlog(如gbichot-bin.000007)
$> cp /var/lib/mysql/gbichot-bin.000007 /backup/
4. 文件系统级备份(MyISAM)
-- 锁定并刷新表后复制文件
FLUSH TABLES table1 WITH READ LOCK;
$> cp /var/lib/mysql/db1/table1.* /backup/
UNLOCK TABLES;

警告:不适用于InnoDB!仅MyISAM在无写入时安全。


三、恢复实战流程

场景:周三早8点数据库崩溃
  1. 恢复周日全量备份
    $> mysql < full_backup.sql  # 重建数据库结构
    
  2. 应用增量备份(binlog)
    $> mysqlbinlog gbichot-bin.000007 gbichot-bin.000008 | mysql
    
  3. 应用崩溃前日志(若binlog未损坏)
    $> mysqlbinlog gbichot-bin.000009 | mysql  # 恢复至故障点
    

核心原则:全量备份 + 增量binlog = 精确时间点恢复。


四、高级技巧与策略

1. 存储程序备份
# 包含事件/存储过程/触发器
$> mysqldump --events --routines --triggers db1 > with_routines.sql
2. 分离表结构与数据
# 仅导出结构
$> mysqldump --no-data --routines --events db1 > schema.sql
# 仅导出数据
$> mysqldump --no-create-info db1 > data.sql
3. 跨服务器迁移数据库
# 源服务器导出
$> mysqldump --databases db1 > db1_dump.sql
# 目标服务器导入
$> mysql < db1_dump.sql
4. 升级兼容性测试
# 在新版本服务器测试结构兼容性
$> mysqldump --no-data --routines --events db1 > test_schema.sql
$> mysql -u root -p < test_schema.sql  # 检查错误或警告

五、关键注意事项

  1. 二进制日志:必须启用(--log-bin)以实现增量备份与时间点恢复。
  2. MyISAM表维护:定期使用 REPAIR TABLEmyisamchk -r 修复表。
  3. 安全存储:备份文件需压缩加密(如企业版或第三方工具),并与数据库分开存储。
  4. 副本备份:生产环境建议从副本执行备份,避免影响主库性能。

终极忠告:定期验证备份有效性!未经验证的备份等于没有备份。

通过合理组合物理/逻辑备份、全量/增量策略,并严格遵守恢复演练流程,可确保MySQL数据库在任何灾难场景下快速恢复业务。

内容来源于官方文档
https://dev.mysql.com/doc/refman/8.4/en/backup-and-recovery.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/87240.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/87240.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/87240.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 部署Latex OCR并优化体验(打包成App并支持全局快捷键)

&#x1f341; 前言 最近阅读论文&#xff0c;在做笔记的时候总是要手动输入一些latex公式&#xff0c;非常耗时。我使用Hapigo的Latex 公式识别&#xff0c;感觉还挺好用&#xff0c;但是缺陷是只有30次免费额度&#xff0c;于是在网上搜索了一下&#xff0c;发现可以通过本地…

128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器

一、背景 在数字化办公时代&#xff0c;PDF 文档因其格式稳定、兼容性强等特点&#xff0c;成为知识分享与文档存储的主要载体之一。但随着文档规模的增长&#xff0c;如何快速提取关键信息成为亟待解决的问题。尤其对于 128K 字符及以上的长文本 PDF&#xff0c;传统处理方法…

Elasticsearch 排序性能提升高达 900 倍

作者&#xff1a;来自 Elastic Benjamin Trent, Mayya Sharipova, Chenhui Wang 及 Libby Lin 了解我们如何通过更快的 float / half_float 排序和 integer 排序的延迟优化来加快 Elasticsearch 排序速度。 Elasticsearch 引入了大量新功能&#xff0c;帮助你为你的使用场景构建…

Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port

问题原因 ​​服务器运行在 HTTPS 模式&#xff0c;但代码却发出了 HTTP 重定向指令&#xff0c;两套协议对不上&#xff0c;浏览器直接报错。​​ 在Java中&#xff0c;常见于response.sendRedirect()方法的使用。该方法默认生成基于HTTP的绝对URL&#xff0c;即便原始请求是…

机器学习如何让智能推荐“更懂你”,助力转化率飞跃?

机器学习如何让智能推荐“更懂你”,助力转化率飞跃? 今天咱聊聊一个电商、内容平台、社交App都离不开的“秘密武器”——智能推荐系统,以及机器学习到底如何帮它提升转化率的。 说白了,转化率就是“点进去买单”的概率。智能推荐做得好,转化率能蹭蹭上涨;做不好,用户滑…

Ruby CGI Session

Ruby CGI Session 引言 CGI&#xff08;Common Gateway Interface&#xff09;是一种网络服务器与外部应用程序&#xff08;如脚本或程序&#xff09;进行通信的协议。在Ruby语言中&#xff0c;CGI被广泛用于创建动态网页。本文将深入探讨Ruby CGI Session的相关知识&#xf…

从零开始的云计算生活——第二十四天,重起航帆,初见MySQL数据库

一.故事剧情 接下来要进入到一条比较长的路——mysql数据库&#xff0c;之后会用一段时间来学习mySQL数据库的内容&#xff0c;今天先从基础开始介绍mysql数据库。 二.MySQL数据库概述 1.数据库概念 数据库(Database) 简称DB&#xff0c;按照一定格式存储数据的一些文件的…

ES文件管理器v4.4.3(ES文件浏览器)

前言 ES文件管理器&#xff08;也叫ES文件浏览器&#xff09;是一款手机上用来看和管理文件的工具。你可以用它像在电脑上一样&#xff0c;把文件整理进不同的文件夹&#xff0c;查找照片、文档、视频都很方便。它还能看到平时看不到的隐藏文件&#xff0c;帮你清理一些没用的…

leetcode:693. 交替位二进制数(数学相关算法题,python3解法)

难度&#xff1a;简单 给定一个正整数&#xff0c;检查它的二进制表示是否总是 0、1 交替出现&#xff1a;换句话说&#xff0c;就是二进制表示中相邻两位的数字永不相同。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;true 解释&#xff1a;5 的二进制表示是&am…

GRU与LSTM之间的联系和区别

前面我们谈到RNN与LSTM之间的关系&#xff0c;而GRU也是循环神经网络中的一种模型&#xff0c;那么它与LSTM有什么区别呢&#xff1f; 接下来我来对GRU&#xff08;Gated Recurrent Unit&#xff09;模型进行一次深度解析&#xff0c;重点关注其内部结构、参数以及与LSTM的对比…

2025年数字信号、计算机通信与软件工程国际会议(DSCCSE 2025)

2025年数字信号、计算机通信与软件工程国际会议&#xff08;DSCCSE 2025&#xff09; 2025 International Conference on Digital Signal, Computer Communication, and Software Engineering 一、大会信息 会议简称&#xff1a;DSCCSE 2025 大会地点&#xff1a;中国北京 审稿…

北峰智能SDC混合组网通信方案,助力无网络场景高效作业

在自然灾害、公共安全事件或大规模活动应急响应中&#xff0c;专用无线对讲通信因其不受外部网络限制、免去通话费用、无需拨号便可实现即时语音调度的特点&#xff0c;展现出其不可替代的价值。尤其在许多无基础设施的地区&#xff0c;对智能化调度管理的需求并不亚于城市地区…

HarmonyOS应用开发高级认证知识点梳理 (二) 组件交互

以下是 HarmonyOS 应用开发中 ‌组件交互‌ 的核心知识点梳理&#xff08;高级认证备考重点&#xff09;&#xff0c;涵盖事件传递、状态管理、通信机制及生命周期协同&#xff1a; 一、事件处理机制 基础交互类型‌ (1)点击事件&#xff08;onClick&#xff09; 核心要点‌…

【SQL优化案例】索引创建不合理导致SQL消耗大量CPU资源

#隐式转换 第一章 适用环境 oracle 11glinux 6.9 第二章 Top SQL概况 下面列出我们发现的特定模块中Top SQL的相关情况&#xff1a; SQL_ID 模块 SQL类型 主要问题 fnc58puaqkd1n 无 select 索引创建不合理&#xff0c;导致全索引扫描&#xff0c;产生了大量逻辑读 …

autoas/as 工程的RTE静态消息总线实现与端口数据交换机制详解

0. 概述 autoas/as 工程的RTE&#xff08;Runtime Environment&#xff09;通过自动生成C代码&#xff0c;将各SWC&#xff08;软件组件&#xff09;之间的数据通信全部静态化、结构化&#xff0c;实现了类似“静态消息总线”的通信模型。所有端口的数据交换都必须经过RTE接口…

【机器学习第四期(Python)】LightGBM 方法原理详解

LightGBM 概述 一、LightGBM 简介二、LightGBM 原理详解⚙️ 核心原理&#x1f9e0; LightGBM 的主要特点 三、LightGBM 实现步骤&#xff08;Python&#xff09;&#x1f9ea; 可调参数推荐完整案例代码&#xff08;回归任务 可视化&#xff09; 参考 LightGBM 是由微软开源的…

时序数据库IoTDB监控指标采集与可视化指南

一、概述 本文以时序数据库IoTDB V1.0.1版本为例&#xff0c;介绍如何通过Prometheus采集Apache IoTDB的监控指标&#xff0c;并使用Grafana进行可视化。 二、Prometheus聚合运算符 Prometheus支持多种聚合运算符&#xff0c;用于在时间序列数据上进行聚合操作。以下是一些常…

React安装使用教程

一、React 简介 React 是由 Facebook 开发和维护的一个用于构建用户界面的 JavaScript 库&#xff0c;适用于构建复杂的单页应用&#xff08;SPA&#xff09;。它采用组件化、虚拟 DOM 和声明式编程等理念&#xff0c;已成为前端开发的主流选择。 二、React 安装方式 2.1 使用…

.NET MAUI跨平台串口通讯方案

文章目录 MAUI项目架构设计平台特定实现接口定义Windows平台实现Android平台实现 MAUI主界面实现依赖注入配置相关学习资源.NET MAUI开发移动端开发平台特定实现依赖注入与架构移动应用发布跨平台开发最佳实践性能优化测试与调试开源项目参考 MAUI项目架构设计 #mermaid-svg-OG…

BUUCTF在线评测-练习场-WebCTF习题[MRCTF2020]你传你[特殊字符]呢1-flag获取、解析

解题思路 打开靶场&#xff0c;左边是艾克&#xff0c;右边是诗人&#xff0c;下面有个文件上传按钮 结合题目&#xff0c;是一个文件上传漏洞&#xff0c;一键去世看源码可知是提交按钮&#xff0c;先上传个一句话木马.php试试 <?php eval($_POST[shell]); ?> 被过…