跳到主要内容

热备份与热还原

热流程用于世界仍在运行、关键文件可能被占用的场景。它依赖文件占用检测、KnotLink、联动模组和一组有上限的等待时间,因此是“尽力而为”的协同层,不是对所有锁定或通信故障的保证。

默认热键

默认全局热键为:

  • Alt+Ctrl+S:备份当前检测到的活动世界。
  • Alt+Ctrl+Z:把活动世界还原到最新备份。

热键可以在设置中重新绑定。如果当前桌面会话不支持全局热键,程序会显示能力状态和诊断;这不应影响普通备份和还原。

热备份流程

当程序检测到 level.dat 等世界文件被占用,或用户明确触发热备份时,流程会尝试:

  1. 与联动模组握手并检查版本。
  2. 请求世界保存,并等待 WORLD_SAVED
  3. 在安全窗口中执行普通备份,必要时使用快照目录。
  4. 完成后解除联动侧的等待或冻结状态。

如果握手、保存确认或版本检查失败,MineBackup 可能退回直接快照或普通备份。回退结果仍需检查日志,不要把“任务结束”当成“游戏状态已完全协调”。

热还原流程

热还原会改变当前正在使用的世界,步骤比热备份更危险:

  1. 握手并检查联动模组版本。
  2. 发送保存并退出请求,等待 WORLD_SAVE_AND_EXIT_COMPLETE
  3. 等待世界目录和 level.dat 释放。
  4. 还原最新归档或指定归档。
  5. 发送还原完成状态。
  6. 请求模组重进世界,并等待 REJOIN_RESULT

程序使用状态机防止同一时间重复执行热还原。另一个请求在流程未回到空闲状态前可能会被忽略。

使用前提与限制

  • 必须存在可识别的活动世界和可用归档。
  • MineBackup-Mod 至少需要 3.0.0;旧版本不能参与完整热流程。
  • KnotLinkService 需要使用 MineBackup 支持的版本,服务端和端口边界见 KnotLink v2 联动
  • 运行中的外部自定义归档不能自动视为安全热还原输入。
  • 热还原失败时,先确认世界是否已经退出、文件是否释放,再决定是否改用普通还原。

第一次演练

  1. 创建测试世界并保留独立 Full 归档。
  2. 先测试退出游戏后的普通备份和还原。
  3. 再测试 Alt+Ctrl+S 热备份。
  4. 列出历史并确认最新归档后,再测试 Alt+Ctrl+Z
  5. 检查重进结果、世界状态和日志。

任何阶段超时都不要连续重复触发。先退回普通备份/还原路径,确认基础链路正常后再排查联动。