Minexa说明书
进阶配置与管理

备份策略与恢复演练

备份不是复制一份 world 就完了。备份什么、多久一次、放哪、怎么确认能恢复。

手机从桌上滑下去的那一秒,你脑子里闪过的不是手机多少钱,而是“存档还在不在”。屏幕没碎,但服务器起不来了,world 目录报 Level is corrupt——这时候能救你的,只有一份几天前、并且真的能打开的备份。

备份这件事最容易犯的错,不是“没备份”,而是“以为备份了”:文件在同一个手机里、备份时服务器还在写盘、从来没试过恢复。下面从“备什么”讲到“怎么演练”,目标只有一个:出事那天,你能真的把服开回来。

本页要点
  • 备份解决“能回去”,演练解决“回去真的能开”。

  • 备份可以不停服,还原必须先停服,最多等 10 秒。

  • 世界还原和整服还原都没有二次确认,点一下就覆盖。

  • 自动备份默认关闭,保留 10 份,而且只清自动来源的旧包。

  • 还原前第一件事:先给当前状态手动打一份新备份。

备份不是复制一份 world#

很多人说的“备份”,只是把 world 文件夹复制到另一个目录。这能救回地图,但救不回一个能开的服。

要备份的东西为什么少了会怎样
世界目录(主世界 + 下界 + 末地)建筑、地形、玩家位置、进度地图回到过去,建筑全没
server.properties端口、人数、正版验证、白名单开关恢复后配置全变默认,朋友进不来
ops.json、whitelist.json、banned-players.json管理员、白名单、封禁名单管理员全没了,捣乱的人能回来
plugins/ 或 mods/ 及各自配置玩法、权限、经济、领地数据插件没了,玩家数据还在但读不出来
核心 jar 与版本记录世界有数据版本,换核心或降级可能读不了换了核心版本,世界可能打不开

Minexa 的「备份世界」默认打包 world、world_nether、world_the_end;「备份整个服务器」打包整个服务端目录,但排除 logs/、server.lock、session.lock。日常回退地图用前者,升级、换核心、换手机用后者。

版本记录也是备份的一部分

世界数据有版本格式,升级容易降级难。除了文件,还要记下:Minecraft 版本、核心类型与版本、Java 来源与版本、插件/模组清单。没有这四样,备份能打开也可能读不了。记录可以写成 版本记录.txt 放在服务端目录里,跟整服备份一起打包。

3-2-1:在手机上怎么落地#

3-2-1 是一条通用备份原则:3 份数据、2 种介质、1 份异地。翻译成手机开服的场景:

数字含义具体做法
3 份除了正在用的,至少还有 2 份备份应用备份目录 1 份 + 电脑 1 份 + 网盘 1 份
2 种介质不要全放在同一块存储上手机内置存储 + 电脑硬盘/移动硬盘/SD 卡
1 份异地防火灾、丢失、整机报废网盘或另一台设备,放在另一个地方

只把备份放在 /storage/emulated/0/世界与服务器的备份/,是“3 份”里的 1 份:手机丢了,备份和服务器一起消失。正确的最低配置是:

  • 每天/每次改动前,应用打一份自动或手动备份;

  • 每周把最新的整服备份导出到电脑;

  • 每月把一份整服备份传到网盘。

云同步不是备份

把整个服务端目录放进云盘的自动同步文件夹,看起来很方便,实际有两个问题:服务端运行时文件一直在变,同步上去的可能是撕裂的存档;误删一个世界,云盘会“忠实地”把删除也同步掉。备份要传打包好的 zip 快照,并且保留多个时间点。

多久备份一次:按人数和改动频率#

没有一个适合所有人的间隔,但可以按“丢一天能不能接受”来定:

场景建议频率保留说明
2~5 人,偶尔玩每天 1 次,或每次开服前7~10 份手动备份为主,改动前必打
10 人左右,常开每 6 小时10~20 份用自动备份,减少人工遗漏
模组/插件服,经常改每 1~2 小时10~20 份配置和模组变动频繁,回退点要多
任何升级/降级/换核心前立刻一份整服一直留到验证通过这一份不要被自动清理覆盖

Minexa 的自动备份默认是关闭的,间隔为 0,需要你手动设。可设 30 / 60 / 180 分钟,也可以自定义 5–10080 分钟;自动保留数量默认 10 份,范围 1–100。它只在服务端运行时由前台服务每 60 秒检查触发,服务端停着就不会自动备份。

两个容易忽略的细节:

  • 自动备份只清理“自动”来源的旧包,手动备份永远不会被自动删除。所以重要节点请手动打一份,别只依赖轮换。

  • 备份文件占空间。世界 200 MB 保留 10 份就是 2 GB。手机剩余空间建议始终留出 10%~20%,空间不足时最先出问题的往往是世界保存。

Minexa 的备份:备份不停服,还原才停服#

先把两个动作分开:

动作会不会停服什么时候用
备份世界 / 备份整服不停服日常快照、改动前留后路
还原世界 / 还原整服会停服(自动 stop,最多等 10 秒,超时强停)地图坏了、升级失败、换手机

“备份不停服”是设计如此,但它换来的是“当时磁盘上的文件”,不保证是同一瞬间的状态。服务端在跑、玩家在跑图、区块在往磁盘写,打出来的包可能一半新一半旧。日常随手备份没问题;升级、装模组、批量改配置前的那一份,最好先停服再打。

在应用里,备份入口是「更多 → 世界与备份」,备份目录是:

文本
/storage/emulated/0/世界与服务器的备份/

Android 11 及以上需要「所有文件访问」权限,未授权时备份按钮是禁用的。备份文件在公共目录,卸载应用不会丢;但手机丢了,它也会一起丢,所以还是要往外拷。

想让备份自动跑,可以设自动备份,也可以用「自动化」建定时任务。自动化的粒度、Cron 写法和限制见 自动化任务:定时开服、备份与公告;备份页每个按钮的细节见 备份、还原与世界管理。

还原:会停服,而且没有二次确认#

这是整套流程里最需要小心的一步。

还原点一下就开始,没有“确定吗”

世界还原和整服还原都没有二次确认。世界还原会直接用备份覆盖当前世界;整服还原只有在检测到同名服务器目录时才会弹一次“覆盖还原”,其他情况也是点下即执行。还原会用备份内容覆盖当前数据,整服还原成功后旧目录会被直接删除,连 .bak 都不留。

所以还原前必须做三件事:

  1. 先给当前状态打一份新备份,并在列表里确认它真的出现了。不要用“我刚才好像点过备份”来判断。

  2. 把这份新备份导出到电脑或网盘。还原会停服并覆盖目录,万一中途出问题,手边有一份异地的更稳。

  3. 确认你要还原的是哪一份:看文件名里的时间、类型、核心字段。文件名里的核心类型用于还原时识别核心,改掉核心字段,还原出来就是「未知」。

还原过程中应用会先校验整包,再停服。停服是自动的:发 stop,最多等 10 秒,还在跑就强制停止。强制停止可能丢未保存的数据,但还原本来就要覆盖,这一点无法避免。还原失败时,世界还原会尽量把旧目录改回原名;整服还原走的是“暂存目录 + 换名”的流程,失败会回滚,但成功后旧目录不留。

恢复演练:抽一份,真的开一次#

备份不做演练,等于没有备份。你不需要每个月都演练,但至少要在“第一次配好自动备份”和“换手机”这两个节点各做一次。

  1. 挑一份最近的整服备份,记下文件名和时间。优先选停服状态下打的包。

  2. 确认它不在主服目录里。演练要用单独的服务器目录,绝不能直接在主服上点还原。

  3. 导入成一台测试服:下载页 → 导入服务器 → 选这个 zip。应用会把它解成一个新的服务器目录;识别不出核心时选「未知」,进服后再改。

  4. 装同样的 Java,启动测试服,等终端出现 Done。起不来就说明这份备份有问题,回去检查文件大小和完整性。

  5. 进去核对:出生点建筑、几个常去坐标、箱子里的东西、下界和末地能不能进、OP 和白名单还在不在、插件/模组有没有加载报错。

  6. 删掉测试服。想留档就保留那份备份 zip,不必留着一台测试服占空间。演练记录写一句“某年某月某日,某份备份启动成功”,下次出事先看这条记录。

如果整服备份太大,导入可能受应用的大小限制(压缩包体积上限 32 GiB、条目上限 40 万)。这种情况下,至少把「备份世界」的 zip 导入一台测试服,确认地图能读、坐标对得上;配置和插件则单独检查。

升级、装模组、改配置前的“四步备份”#

任何会改世界、改核心、改玩法的事情,都按这四步走:

  1. 停服。不要在有玩家跑图的时候升级。

  2. 打两份:一份整服备份,一份世界备份。整服用于整体回退,世界用于只回地图。

  3. 导出到电脑:用备份列表的导出,或把备份目录整个拷走。导出后打开 zip 看一眼,确认不是 0 字节。

  4. 写版本记录:把下面这段填好,和备份放在一起。

文本
备份日期:
Minecraft 版本:
核心类型与版本:
Java 来源与版本:
插件/模组清单(数量 + 关键项):
世界名:
最后一次确认能启动的时间:

升级完成后,先自己进服走一圈,再让玩家进。确认没问题,再清理更早的手动备份;确认有问题,按“还原”那一节回退,不要在原目录上反复覆盖。

跨设备迁移:整目录 + 三个一致#

换手机时,最容易丢的不是世界,而是“能读这个世界的环境”。迁移要保证三个一致:

  • MC 版本一致:新手机的服务端核心版本要和旧的一致,至少不能低于世界的数据版本。

  • Java 一致:1.16 及以下要 Java 8,而 Java 8 只在 PRoot 的 Ubuntu 20.04 里;新手机没装对 Java,世界再好也起不来。

  • 核心类型一致:Paper 的世界给 Forge 读,多数情况能读,但插件/模组数据对不上;反过来更麻烦。

操作顺序:旧手机停服 → 打整服备份 → 把备份 zip 拷到新手机同一目录 → 新手机装 Minexa、初始化环境、装同样的 Java → 备份页还原,或下载页导入 zip → 启动确认 Done。

不要直接拷贝正在运行的服务器目录,session.lock 和半写状态会跟着过去。目录结构、哪些文件不能动,见 服务端目录结构与文件说明;迁移后核心显示「未知」,按 导入服务器与整合包 里的办法重选核心。

备份文件名别乱改

文件名里的服务器目录、时间、核心类型,是还原时识别目标的依据。改掉核心字段,还原出来会变成「未知」核心,还得手动重选;改掉时间,列表里的时间可能解析不出,只能退回文件修改时间。要标注用途,可以另建一个 备份说明.txt,不要动 zip 的名字。

上机自查
  • 备份列表里能看到刚打的那一份,大小不是 0 字节。

  • 自动备份开着时,间隔不是 0,保留份数是你想要的(默认 10 份)。

  • 备份目录 /storage/emulated/0/世界与服务器的备份/ 里能看到文件,说明「所有文件访问」已授权。

  • 至少有一份整服备份已经拷到手机以外(电脑或网盘)。

  • 用一份备份导入过测试服,终端出现过 Done。

下一步#

读到这儿了,给你点个赞。如果这页内容帮你解决了问题,说明说明书的方向是对的;如果发现错误、过时信息或看不懂的地方,欢迎到 GitHub Issues 告诉我们。

⚡ 回到极速开服 📖 查术语表