当系统管理员尝试在使用分布式文件系统 (DFS) 或存储访问网络 (SAN) 的环境中设置 MySQL 和 MySQL Enterprise Backup 时,MySQL 服务器、服务器的数据目录、MySQL Enterprise Backup 和备份目录可能最终存在于不同的物理服务器上。发生这种情况时, mysqlbackup的操作可能会受到影响。最有可能受到不利影响的操作是热备份,其成功取决于:
数据文件的每一页被一致地复制,即页面中的所有字节对应于同一个LSN。
没有复制的页面早于标记备份应该涵盖的时间持续时间开始的时间。
重做日志被一致地复制,意味着复制了一段连续的重做日志,它包括从备份要覆盖的时间段开始到备份操作结束的所有更改。复制的重做日志的每个块都必须是一致的。
对于大多数具有合理性能的 DFS 或 SAN,条件 1 很容易实现。即使满足条件 1,条件 2 也可能保持未满足状态:例如, mysqlbackup可以正确复制表空间的所有页面,除了 mysqlbackup已将旧版本包含到副本中的页面之外。如果旧版本页面的 LSN 小于mysqlbackup在备份过程开始时首先看到的 LSN,则生成的备份将有缺陷。这个例子表明mysqlbackup 执行热备份可能有问题,除非它可以看到以正确顺序执行的对文件系统的写入,即服务器执行它们的顺序。
关于条件3,与数据文件页不同,重做日志块是顺序写入的,这意味着条件3比条件1和2更容易满足。但是,如果 mysqlbackup在遇到复制的数据文件页之前达到了最高LSN重做日志,备份失败。如果 mysqlbackup在复制重做日志期间的任何时候读取损坏的日志块,也会发生故障。如果mysqlbackup没有看到与 MySQL 服务器相同的文件系统状态历史记录, 那么这两种故障都可能发生。
因此,要将mysqlbackup与 DFS 或 SAN 一起使用,重要的是要确保 mysqlbackup以与 MySQL 服务器相同的顺序查看对文件系统的所有写入。当mysqlbackup和 MySQL 服务器在同一服务器节点上运行时,最有可能满足该条件 ,否则不太可能总是满足。