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

为什么要进行MySQL增量备份?

进行MySQL增量备份的原因主要包括以下几点:

  1. 节省存储空间:增量备份只备份自上次全量或增量备份以来更改过的数据,而不备份所有数据。相比全量备份,增量备份生成的文件通常较小,可以显著减少存储空间的使用。
  2. 减少备份时间:由于只需要备份变更的数据,增量备份所需的时间通常比全量备份要短,尤其是数据量很大的情况下,增量备份能有效加快备份过程。
  3. 降低服务器负载:增量备份的数据量较小,备份期间对服务器资源的占用也较少,能减轻服务器的负担,从而降低对业务的影响。
  4. 高效的恢复方案:通过结合全量备份和增量备份,可以在数据恢复时提供灵活性。管理员可以先恢复最近的全量备份,然后应用增量备份来恢复到最新状态。
  5. 更高的备份频率:由于增量备份效率较高,可以更频繁地进行备份,确保数据的丢失风险降到最低。

增量备份通常与全量备份和差异备份结合使用,能提供更高效的备份与恢复方案,尤其适用于数据变化频繁的大型数据库。

如何使用二进制日志运行 MySQL 增量备份?

使用 MySQL 的二进制日志 (binary log) 进行增量备份是一种高效的方法,因为二进制日志记录了所有对数据库的更改操作(如 INSERT、UPDATE、DELETE 等)。以下是通过二进制日志运行 MySQL 增量备份的步骤:

1.1. 运行show variables like '%log_bin%'; MySQL 命令行客户端中的命令。

1.2. 如果 log_bin 的值为“ON”,则直接进入第 2 步;如果值为OFF,则编辑 MySQL 服务器配置文件以启用二进制日志。

★如何启用二进制日志?

首先,必须确保 MySQL 服务器启用了二进制日志功能。可以通过编辑 MySQL 配置文件 my.cnf(或 my.ini)来启用二进制日志。

首先,必须确保 MySQL 服务器启用了二进制日志功能。可以通过编辑 MySQL 配置文件 my.cnf(或 my.ini)来启用二进制日志。

配置步骤:

在 [mysqld] 配置部分添加以下内容:

[mysqld]

log-bin=mysql-bin

server-id=1

  1. log-bin 用于启用二进制日志并指定日志文件的前缀(如 mysql-bin)。
  2. server-id 是用于标识服务器的唯一 ID,必要时可用于主从复制。

之后,重新启动 MySQL 服务以应用配置:

sudo systemctl restart mysql

自上次完整备份以来修改了 MySQL 数据库中的数据后,您可以按照以下步骤运行增量备份:

2.1. 在 MySQL 命令行客户端中执行以下命令。不要关闭 MySQL Command LineClient,以便您可以在步骤 3.3 中继续使用它。

[pasword]

flush binary logs;

show binary logs;

2.2. 复制所有二进制日志,范围从最后一次完整或增量备份的那一刻到最后一次备份到备份位置。您可以在提升的命令提示符中运行以下命令。

cd C:\ProgramData\MySQL\MySQL Server 8.0\Data(指定二进制日志的目录位置)

copy DESKTOP-J6AHKLA-bin.000019 D:\MySQLBackup(指定要复制的文件和目标路径)

copy DESKTOP-J6AHKLA-bin.000020 D:\MySQLBackup

exit

“注意:” 不能在一个复制命令中指定多个文件名。

2.3. 复制二进制日志文件后,必须删除它们,以便在下一次复制时它们不会复制已经备份的数据。执行以下命令删除旧的二进制日志并退出 MySQL 命令行客户端。

将二进制日志清除到“DESKTOP-J6AHKLA-bin.000021”;(DESKTOP-J6AHKLA-bin.000021之前的二进制日志全部删除)

exit

至此你已经完成了MySQL的增量备份。

如何从 MySQL 增量备份中恢复?

当您的 MySQL 数据库遇到数据丢失或损坏时,可以按照以下步骤进行恢复。以下内容经过浓缩和修改,以简洁且有效的方式呈现:

步骤 1:关闭二进制日志

为了防止恢复过程中产生的日志记录影响数据库,需要暂时关闭二进制日志。

1.1. 打开 MySQL 配置文件 my.ini,在 [mysqld] 部分添加以下行:

skip-log-bin

1.2. 保存配置文件后,重新启动 MySQL 服务:

  • 在“服务”窗口中找到 MySQL 服务,右键点击选择“重新启动”。

1.3. 检查二进制日志是否已关闭,使用 MySQL Command Line Client 输入以下命令:

SHOW VARIABLES LIKE '%log_bin%';

确保 log_bin 的值为 OFF。

步骤 2:从完整备份和增量备份中恢复数据库

2.1. 删除原始数据库并创建一个新的空数据库:

DROP DATABASE test;  -- 替换 'test' 为你的数据库名CREATE DATABASE test;

EXIT;

2.2. 使用管理员身份运行命令提示符并依次恢复完整备份和二进制日志。

恢复数据库:

mysql -u root -p test < D:\MySQLBackup\full_backup.sql  # 完整备份文件路径

恢复增量备份(导入二进制日志):

mysqlbinlog D:\MySQLBackup\DESKTOP-J6AHKLA-bin.000020 | mysql -u root -p

如果有多个二进制日志文件,按升序依次执行:

mysqlbinlog D:\MySQLBackup\DESKTOP-J6AHKLA-bin.000021 | mysql -u root -p

mysqlbinlog D:\MySQLBackup\DESKTOP-J6AHKLA-bin.000022 | mysql -u root -p

步骤 3:重新启用二进制日志

3.1. 编辑 my.ini 文件,将 [mysqld] 部分中的 skip-log-bin 行删除。

3.2. 重新启动 MySQL 数据库服务以启用二进制日志。

小结:

  1. 关闭二进制日志,避免影响恢复过程。
  2. 恢复完整备份和增量备份。
  3. 重新启用二进制日志并重启服务。

通过这些步骤,您可以安全、有效地恢复丢失或损坏的 MySQL 数据库。

创建 MySQL 增量/差异备份的更简单方法

如您所见,使用二进制日志执行MySQL增量备份和恢复的整个过程复杂且耗时。由于它们是命令行操作,如果您在备份和还原过程中出错,您将没有机会返回。

幸运的是,强大的MySQL备份软件傲梅企业备份标准版提供了一个用户友好的界面,使事情变得更容易。更重要的是,您可以在确认后修改设置并执行操作。以下是其主要特点:

✦ 您可以根据需要进行系统备份、磁盘/分区备份或文件备份。
✦ 您可以创建MySQL文件全量备份任务,备份所有数据或运行增量/差异备份以仅备份更改的数据。
✦ 您可以安排MySQL文件备份自动运行,并启用智能删除机制来删除过时的备份。
✦ 它支持所有 Windows Server 和 PC 操作系统,包括 Windows Server 2019/2016/2012/2008 和 Windows 10/8/7。

使用傲梅企业备份标准版备份MySQL数据库文件,只需要备份数据目录即可。如果它是隐藏的,首先显示隐藏的项目。下面一步一步学习如何做MySQL文件增量备份。请注意,第一次备份必须是完整备份。

步骤 1.下载傲梅企业备份标准版试用。安装并启动它。

步骤 2.单击左侧面板中的"备份并选择""文件备份"

步骤 3.为任务命名并选择"添加文件夹"以添加 MySQL 数据库文件夹。您可以一次添加多个数据库文件夹。

提示:要备份所有的MySQL数据库文件,可以添加整个数据目录进行备份。

步骤 4.指定保存备份映像的目标路径。它支持各种备份存储设备.

步骤 5.如果需要,单击"计划任务""备份策略"进行更多配置。单击"“开始备份”"以运行MySQL 全量备份。

步骤 6.数据修改后做MySQL文件增量备份,进入"首页"找到MySQL全量备份任务。展开下拉菜单并选择"备份">"增量备份"

"提示:"如果您在 MySQL 全量备份期间启用了"计划任务",程序将默认运行增量备份。

总结

如果你想在 Windows 上执行 MySQL 增量备份,可以参考以下两种方法:

二进制日志:通过 MySQL 的二进制日志功能,手动进行增量备份。这种方法需要启用二进制日志,并依靠命令行工具进行备份和恢复,操作较为复杂。

傲梅企业备份标准版:相比之下,使用傲梅企业备份标准版更为简单。这款工具具有强大的功能,能够自动化增量备份和恢复过程,适合企业环境中频繁备份的需求。

选择傲梅企业备份标准版不仅能够简化操作,还能提供更多的备份管理功能,提高备份的效率和安全性。


http://www.kler.cn/a/303584.html

相关文章:

  • 数据分析-48-时间序列变点检测之在线实时数据的CPD
  • @Autowired和@Resource的区别
  • flutter pigeon gomobile 插件中使用go工具类
  • c#————委托Action使用例子
  • 【PyTorch】libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
  • SpringBoot开发——整合AJ-Captcha实现安全高效的滑动验证码
  • 【数据结构和算法实践-树-LeetCode112-路径总和】
  • 力扣: 四数相加II
  • Linux安装管理多版本JDK
  • CSS Clip-Path:重塑元素边界的艺术
  • mysql慢sql问题修复
  • 计算机毕业设计 自习室座位预约系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • qt操作excel(QAxObject详细介绍)
  • 论文解读《LaMP: When Large Language Models Meet Personalization》
  • 浏览器插件利器--allWebPluginV2.0.0.20-alpha版发布
  • 首批通过!华为云CodeArts Snap智能开发助手通过可信AI智能编码工具评估,获当前最高等级
  • 气膜体育馆:为学校打造智能化运动空间—轻空间
  • 响应式网站真的就只是多了一个媒体查询吗?
  • CSS学习17--CSS3 过渡、2D变形、3D变形、动画
  • linux 内核代码学习(九)--Linux内核启动和文件系统
  • MySQL 子查询
  • 计算几何学习
  • 【论文阅读】视觉分割新SOTA: Segment Anything(SAM)
  • C语言 | Leetcode C语言题解之第397题整数替换
  • CSS基本布局理解(测试)——WEB开发系列38
  • 静态和动态类型语言