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

灾难恢复始终需要进行备份。如果数据库数量少,我们可以每天做一次全量备份,因为不会花太多时间。但是,当数据库变大时,进行完整备份可能会涉及高服务器负载和大量存储空间。那怎么办呢?

增量备份在这种情况下大有帮助。增量备份只包含在创建上一个备份后发生变化的信息,因此大大减少了备份的大小并允许您经常进行此类备份。此外,您还可以从 MySQL 增量备份执行"时间点恢复"想知道如何对 MySQL 数据库进行增量备份吗?请继续阅读。

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

二进制日志是一组日志文件,其中包含有关对 MySQL 服务器实例进行的数据修改的信息。应用于 MySQL 服务器的所有事务都按顺序写入二进制日志文件。因此,您可以通过备份二进制日志文件来创建 MySQL 增量备份。请按照以下说明操作:

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

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

检查二进制日志

★如何启用二进制日志?

① 找到MySQL Server的配置文件。在 Linux 上是“my.cnf”,在 Windows 上是“my.ini”。对于我来说,“my.ini”文件位于 C:\ProgramData\MySQL\MySQL Server 8.0 中,所以我先显示隐藏的 C:\ProgramData 目录。

② 将“my.ini”复制到桌面,用记事本打开。在[mysqld]部分中,添加以下行并保存更改:

  • server_id=1

  • log_bin=“计算机名-bin”

  • max_binlog_size=100M

③ 用修改后的文件替换原来的“my.ini”文件。系统会要求您提供管理员权限。

④ 在服务窗口重启MySQL数据库服务器。您可以按Win + R键并在“运行”窗口中键入services.msc以进入该窗口。

重启MySQL

增量备份应该从完整备份开始。在提升的命令提示符中运行以下命令以初始化二进制日志:

  • mysqldump -u root -p --flush-logs --delete-master-logs --lock-all-tables --all-databases > D:\MySQLBackup\all_databases.sql
    (可以指定其他备份位置替换D: \MySQL备份)

  • [password]

  • exit

运行完整备份

“注意:”
--flush-logs:初始化写入新的二进制日志文件
--delete-master-logs:删除旧的二进制日志文件
--lock-all-tables:锁定所有数据库中的所有表

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

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

  • [pasword]

  • flush binary logs;

  • show binary logs;

show binary logs

3.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

复制二进制日志

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

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

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

  • exit

清除二进制日志

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

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

当您的 MySQL 数据库遇到数据丢失或损坏时,您可以按照以下步骤进行恢复:

1.关闭二进制日志。如果您不这样做,那么所有恢复的数据都将保存在二进制日志文件中。

1.1. 在“my.ini”文件的[mysqld]部分的log_bin=“computername-bin”行后面添加skip-log-bin行。"" ""

1.2. 如上所述,在“服务”窗口中重新启动 MySQL 数据库服务器。

1.3. 运行show variables like '%log_bin%'; MySQL Command Line Client 中的命令来检查 log_bin 的值现在是否为OFF

2. 依次从完整备份和增量备份中恢复损坏的数据库。

2.1. 执行以下命令删除原始数据库并重新创建一个空数据库。

  • drop database test;(“test”是我要恢复的数据库的名字)

  • create database test;

  • exit

重建数据库

2.2. 以管理员身份运行命令提示符并键入以下命令以恢复“测试”数据库中的数据并关闭命令提示符。

  • mysql -u root -p -o test(“-o”允许指定一个数据库进行恢复)

  • [pasword]

  • mysqlbinlog D:\MySQLBackup\DESKTOP-J6AHKLA-bin.000020 | mysql -u root -p(指定要导入的二进制日志)

  • [pasword]

  • exit

增量备份还原

“注意:”要导入多个二进制日志文件,请按升序排列。

3. 通过删除“my.ini”文件的[mysqld]部分中的skip-log-bin再次打开二进制日志并重新启动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 增量备份

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

如何对MySQL数据库文件进行时间点恢复?

1. 进入"首页",找到MySQL备份文件任务。展开下拉菜单并选择"恢复"

2. 程序会自动选择要恢复的最新备份映像。如果生成了多个增量备份镜像,您可以根据自己的情况选择其中一个进行恢复。然后,按照向导完成该过程。

总结

如果你想在 Windows 上执行 MySQL 增量备份,你可以求助于本页提供的两种方法。相比二进制日志,傲梅企业备份标准版更简单,功能更强大。