Skip to content

日常运营、备份恢复与安全边界

每日开服流程

  1. 启动 MySQL并确认连接数、磁盘和备份状态。
  2. 启动代理,但先保持维护模式。
  3. 启动游戏服,确认 FKEscape 依赖加载、配置校验和心跳正常。
  4. 启动大厅,确认能发现空闲游戏服。
  5. 用测试账号执行商店、报名和一次转服。
  6. 确认控制台无未解释的 ERROR/SEVERE 后开放入口。

预期结果: 游戏服状态从离线恢复为空闲;大厅不向未就绪节点派发。

日常巡检

  • 队列是否能在达到最低人数后成批消化。
  • 游戏服是否有长时间卡在等待、结算或预留状态。
  • 数据库连接池、慢查询、磁盘空间与备份是否正常。
  • 经济扣款、匹配、转服和邮箱是否有异常日志。
  • MMOItems/MythicMobs 更新后 ID 是否仍有效。
  • 资源包 URL、哈希及客户端接受率是否正常。

配置变更

  1. 复制整个配置目录作为带时间戳备份。
  2. 在测试服修改并运行 /fkescape admin reload
  3. 故意检查返回信息;失败时旧配置仍在运行。
  4. 对资源区和战利品等下一局配置,结束当前局后再验证。
  5. 角色、ID、数据库、大厅名或游戏世界改变时安排完整重启。
  6. 同步所有同角色节点,避免游戏服内容漂移。

不要使用 Bukkit /reload。不要只复制单个 YAML 而遗漏跨文件引用。

安全维护与关服

插件没有维护模式开关。使用代理维护模式、白名单或入口 ACL 阻止新玩家:

  1. 停止新报名并公告。
  2. 等待所有对局自然结束。
  3. 若必须清场,在明确告知损失后执行游戏服 /fkescape admin reset
  4. 等待结算日志完成,再正常关闭后端服。
  5. 最后关闭代理和数据库。

reset 会删除未撤离战术背包并送玩家回大厅,不是保存进度命令。直接强杀有玩家的游戏服只应用于故障演练。

备份范围

必须在相近时间点备份:

  • FKEscape MySQL 数据库。
  • Vault 经济插件余额数据。
  • LuckPerms/权限数据。
  • 每台服务器的 FKEscape YAML 与语言文件。
  • MythicMobs、MythicLib、MMOItems 内容。
  • Citizens 数据、大厅世界与全部战场世界。
  • 客户端资源包源文件、成品 ZIP、URL 与 SHA-1。
  • 代理子服列表和所有组件版本清单。

推荐在入口关闭、无进行中对局时做一致性备份。数据库和经济恢复到不同时间点,会出现已扣款却没有对应权益或反向重复价值的风险。

恢复演练

  1. 在隔离网络恢复数据库、经济、权限和地图到同一恢复点。
  2. 所有节点先使用新测试身份或关闭生产代理入口。
  3. 校验每台 server-id 唯一。
  4. 启动游戏服再启动大厅。
  5. 抽查玩家余额、权益、购买券、邮箱和保险箱。
  6. 完成成功撤离、死亡、邮箱领取、重复领取与掉线恢复测试。
  7. 只有审计结果一致时才切换生产入口。

常见坑: 只恢复 FKEscape 库而不恢复经济;用生产身份启动恢复副本,导致两套节点同时写同一数据库。

经济与物品异常

购买、邮箱或撤离发生异常时,先停止相关入口并保存日志。根据玩家、时间、金额和经济流水确认第一次操作是否成功,再由管理员进行一次人工处理并留下记录。

不要“再发一次试试”

邮箱、装备券、背包权益或经济异常均不得用重复命令试探。极端情况下允许玩家暂时损失价值,再按证据人工补偿。

资源包运营

FKEscape 只读取 Material + CustomModelData,不依赖 ItemsAdder API。服主可用任意工具制作资源包,但所有游戏服和客户端必须使用同一份映射。

  1. 维护 custom-model-data.yml 与资源包模型的 ID 台账。
  2. 构建资源包,并确保所有玩家使用同一版本。
  3. 清空客户端缓存后用全新账号测试资源包。
  4. 检查商店、网格和战利品中的每个 CMD 外观。

映射冲突通常不会导致插件报错,却会显示错误模型;每次发包都应保留旧成品以便回滚。