MySQL 企业备份用户指南(版本 8.0.31)  / 第二部分使用 MySQL 企业备份  / 第 4 章备份数据库服务器  /  4.4 使用分布式文件系统 (DFS) 或存储访问网络 (SAN) 进行备份

4.4 使用分布式文件系统 (DFS) 或存储访问网络 (SAN) 进行备份

当系统管理员尝试在使用分布式文件系统 (DFS) 或存储访问网络 (SAN) 的环境中设置 MySQL 和 MySQL Enterprise Backup 时,MySQL 服务器、服务器的数据目录、MySQL Enterprise Backup 和备份目录可能最终存在于不同的物理服务器上。发生这种情况时, mysqlbackup的操作可能会受到影响。最有可能受到不利影响的操作是热备份,其成功取决于:

  1. 数据文件的每一页被一致地复制,即页面中的所有字节对应于同一个LSN。

  2. 没有复制的页面早于标记备份应该涵盖的时间持续时间开始的时间。

  3. 重做日志被一致地复制,意味着复制了一段连续的重做日志,它包括从备份要覆盖的时间段开始到备份操作结束的所有更改。复制的重做日志的每个块都必须是一致的。

对于大多数具有合理性能的 DFS 或 SAN,条件 1 很容易实现。即使满足条件 1,条件 2 也可能保持未满足状态:例如, mysqlbackup可以正确复制表空间的所有页面,除了 mysqlbackup已将旧版本包含到副本中的页面之外。如果旧版本页面的 LSN 小于mysqlbackup在备份过程开始时首先看到的 LSN,则生成的备份将有缺陷。这个例子表明mysqlbackup 执行热备份可能有问题,除非它可以看到以正确顺序执行的对文件系统的写入,即服务器执行它们的顺序。

关于条件 3,与数据文件页不同,重做日志块是顺序写入的,这意味着条件 3 比条件 1 和条件 2 更容易满足,尤其是在 使用MySQL Server 8.0.17 上提供的重做日志归档功能时。但是,如果mysqlbackup在遇到重做日志末尾之前达到复制数据文件页中的最高 LSN,则备份失败。如果 mysqlbackup在复制重做日志期间的任何时候读取损坏的日志块,也会发生故障。如果mysqlbackup没有看到与 MySQL 服务器相同的文件系统状态历史记录, 那么这两种故障都可能发生。

因此,要将mysqlbackup与 DFS 或 SAN 一起使用,重要的是要确保 mysqlbackup以与 MySQL 服务器相同的顺序查看对文件系统的所有写入。当mysqlbackup和 MySQL 服务器在同一服务器节点上运行时,最有可能满足该条件 ,否则不太可能总是满足。