Backups

Take consistent backups of your world without corrupting it.

A live Bedrock world is a LevelDB database that the server writes to constantly. Copying the worlds/ folder while the server is running can capture a half-written database and produce a corrupt backup. There are two safe ways to avoid that.

The simple way: stop, copy, start

For most servers this is the most reliable option. With the server stopped the world is in a consistent state, so a plain copy is guaranteed valid:

  1. Stop the server (stop in the console).
  2. Copy the world folder - worlds/<level-name>/ - somewhere safe.
  3. Start the server again.

The downside is the brief downtime while you copy. For small worlds that's a few seconds.

The no-downtime way: save hold / query / resume

BDS can hand you a consistent snapshot while it keeps running. It's driven by three console commands:

CommandWhat it does
save holdAsks the server to prepare a backup. Returns immediately.
save queryPoll this repeatedly. Once it succeeds it returns the list of files to copy, each with a byte length.
save resumeTells the server you're done so it can resume managing files normally.

The catch is in save query: the server may still be writing, so you must copy only the files it lists and truncate each copy to the exact length it reports. Copy more than that and the backup can be inconsistent.

This dance is fiddly to do by hand, which is why it's normally automated by a script or a backup plugin rather than typed manually.

What to back up

At minimum, the active world:

worlds/<level-name>/

For a full restore you'll also want the files that define how the server runs:

Automating

On a bare-metal install, schedule the stop/copy/start routine - or a save hold-based script - with cron (Linux) or Task Scheduler (Windows). If you run as a Docker service, back up the host ./data folder the container mounts; a scheduled copy of ./data/worlds on the host works the same way.

Restoring

  1. Stop the server.
  2. Replace worlds/<level-name>/ with your backup copy (delete the live folder first so no stale files remain).
  3. Start the server. Make sure level-name still points at the restored folder.

On this page