跳到主要内容

备份模式、链完整性与安全删除

MineBackup 配置界面的备份模式仍然是 Full、Smart、Overwrite。它们决定归档如何生成、历史如何增长,以及还原时需要哪些文件。

不要把配置界面的模式与 KnotLink 一次性请求中的 backup_mode=full|incremental 混为一谈。后者只是单次调用覆盖项,不会把配置永久改成另一种模式。

模式对比

模式实际行为优点代价
Full每次创建包含当前完整文件状态的新归档最直观,恢复依赖少占用空间和首次压缩时间较高
Smart以 Full 为基线,只把变化写入 Smart 归档,并通过元数据串起链高频备份更快、更省空间依赖基线、记录和链顺序
Overwrite维护当前状态的覆写归档,不持续累积同样深度的历史节省空间,适合临时同步历史深度和回溯选择较少

Smart 链是如何工作的

Smart 备份需要一个可用的 Full 基线。每个 Smart 归档会记录:

  • 它基于哪个 Full。
  • 上一个 Smart 归档是谁。
  • 新增、修改、删除和当前完整文件列表。
  • 当前链状态和最后一次备份信息。

这些信息位于备份根目录 _metadata/<世界名>/ 下的 state.jsonrecords/。因此,只保留归档文件而删除元数据,不能保证 Smart 归档仍然可以 Clean 还原。

什么时候会重新建立 Full

MineBackup 会在以下情况强制使用 Full:

  • 目标目录没有可用的 Full 基线。
  • Smart 元数据缺失、损坏或无法组成完整链。
  • 1.15 → 1.16 迁移只能部分完成,继续沿用旧链不安全。
  • Smart 备份数达到 maxSmartBackupsPerFull
  • 其他安全检查判断现有链不能可靠延续。

默认的 maxSmartBackupsPerFull 为 5。它只限制每个 Full 后的 Smart 数量,不等同于总历史保留数。

关键参数

  • skipIfUnchanged:没有变化时跳过备份,减少无意义归档。
  • keepCount:限制自动保留的备份数量;0 表示不限制。
  • maxSmartBackupsPerFull:控制 Smart 链长度,达到阈值后建立新 Full。
  • backupBefore:还原前先建立当前状态的兜底备份。
  • isSafeDelete:删除 Smart 归档时尝试维护链的可还原性。

保留数量不要小到同时删掉 Full 基线和仍依赖它的 Smart 链。设置变更后先观察几次真实备份,再批量应用到其他配置。

Smart 安全删除

直接在文件管理器中删除 Smart 或 Full 归档可能造成历史、文件和元数据不一致。历史页提供的安全删除会根据链位置处理:

  • 重要备份或重要目标不会被安全删除流程强行修改。
  • 链尾归档可以执行普通删除。
  • 链中间的 Smart 归档可能需要提取并合并变化,再提升后续目标为新的 Full。
  • 任一步失败时,程序应中止并保留原有数据,而不是静默删除一半。

如果只是想隐藏一条历史,可以选择“仅删除历史记录”,不要直接删除本地归档。对重要世界,删除后应再验证一次历史和还原。

选择建议

  • 新配置和关键里程碑:Full
  • 高频 Minecraft 存档:Smart + 合理的链长上限 + 安全删除。
  • 临时同步或只关心最新状态的目录:Overwrite
  • 模式切换:先手动建立一个 Full,再切换并验证后续 2~3 次备份。

第一次使用或发生链异常时,优先回到 Full,不要通过手动复制、重命名或删除文件修补 Smart 链。