搜索

备份、迁移与回滚

数据范围、备份节奏、MythicDungeons/Paper/Folia 迁移与灾难恢复。

必须备份的内容

路径 原因
plugins/LiDungeon/maps/ 地牢模板、配置、房间和功能数据
plugins/LiDungeon/globalplayerdata/ 玩家完成记录、冷却和持久变量
plugins/LiDungeon/config.yml 全局实例、队伍、Folia、旁观设置
plugins/LiDungeon/lang/ 自定义中文文本
plugins/LiDungeon/backups/ 插件历史备份,可作为二级恢复来源
当前 LiDungeon Jar 保证数据与程序版本成对回滚
Folia 池世界配置/加载配置 重建同一世界池拓扑

活动实例不是可靠备份源。执行备份前让玩家退出,等待编辑保存完成并正常停服。

推荐备份节奏

  • 每次更换 Jar 前;
  • 每次批量修改触发器或房间前;
  • 每次改变世界池前;
  • 每次发布新地牢前;
  • 正式服每日自动备份;
  • 重大活动开始前额外做一次离线备份。

保留至少“最近一次稳定版本”“更新前版本”“当前工作版本”三组可识别时间点。

从 MythicDungeons 迁移

LiDungeon 保留地图配置键、dungeons.* 权限、Java API 包名和 %md_...% 占位符,以兼容旧内容。迁移步骤:

  1. 在原服记录服务端、Java、MythicMobs/Citizens/PAPI 版本。
  2. 正常停服并备份旧插件数据。
  3. 在隔离测试服只安装 LiDungeon 和同版本依赖。
  4. 复制 maps/ 与 globalplayerdata/ 到 plugins/LiDungeon/。
  5. 启动一次,让配置自动补齐。
  6. 检查加载数量和所有警告。
  7. 对每个地牢执行 status、edit、save、play、完成、重启复测。
  8. 修改公告、菜单和 NPC 指令为 /lidungeon play <地牢>。
  9. 正式迁移时再次用最新离线备份替换测试数据。

不要把旧 /md join <地牢> 批量替换为 /lidungeon join <地牢>;正确玩家入口是 play。

Paper 到 Folia

推荐把 Paper 当制作/导入环境,把 Folia 当运行环境:

  1. 在同游戏版本 Paper 完成地图制作。
  2. 停服复制整个 maps/<地牢>/。
  3. 在 Folia 提前加载池世界。
  4. 配置 Folia.MultiWorld.Worlds。
  5. 启动后确认有效池数量。
  6. 先单实例测试,再并发压测。

迁移模板不等于复制一个正在运行的实例世界;以 maps/ 中的地牢模板为准。

回滚原则

程序 Jar 与数据必须来自同一备份时间点。错误做法包括:

  • 只换回旧 Jar,保留新版本已经迁移的数据;
  • 只恢复 maps/,不恢复玩家完成/冷却数据;
  • 在服务器运行时覆盖地牢目录;
  • 从正在运行的池世界复制区块当模板;
  • 回滚后立即开放所有玩家,没有先做测试实例。

标准回滚

  1. 停服。
  2. 单独保存失败版本的 Jar、数据和完整日志用于排查。
  3. 恢复旧 Jar。
  4. 恢复同一时间点的 config.yml、maps/、globalplayerdata/、lang/。
  5. 恢复世界池配置和加载顺序。
  6. 启动后仅允许管理测试账号进入。
  7. 验证一个经典地牢、一个程序化地牢、玩家完成记录和进入冷却。
  8. 确认无数据继续迁移提示后再开放。

灾难恢复验收

一次备份只有经过恢复演练才可信。至少每个大版本做一次:

  • 在空白测试服恢复备份;
  • 启动并加载全部地牢;
  • 用旧玩家数据进入并完成地牢;
  • 检查奖励、钥匙和冷却;
  • 重启后再次确认;
  • 记录恢复时长和缺失项。