Backing up InfluxDB 3 Core preserves the object-store prefix that holds the node catalog, write-ahead log, snapshots, and Parquet files. A restore matters only when a replacement instance can start from that copy and return data that existed before the backup.
InfluxDB 3 Core does not include the Enterprise backup and restore CLI, so Core operators use filesystem or provider-native object-store copies. A stopped Docker container with a host-mounted file object store keeps the backup and restore test isolated from package manager or systemd configuration.
Keep the node ID unchanged during the restore test. Current InfluxDB 3 Core catalog files live under catalog/v3, and optional paths such as dbs or snapshots may be absent on small or newly written instances, so copying the complete node prefix is safer than assuming every documented subdirectory already exists.
Node ID: core01 Source data path: /srv/influxdb3/source Backup path: /srv/influxdb3/backups/20260620-restore-test Restore test path: /srv/influxdb3/restore-test Proof database: sensors
The source data path is the host directory mounted into the container as the file object store, not the container-only /data path.
$ export INFLUXDB3_AUTH_TOKEN='REPLACE_WITH_ADMIN_TOKEN'
Do not paste real tokens into shared transcripts, screenshots, or task reports. Use the token only in the shell that runs the pre-backup and post-restore checks.
$ export INFLUXDB3_DATABASE_NAME=sensors
$ influxdb3 query --format csv "SELECT value FROM rack_temp" value 21.7
$ docker stop influxdb3-core influxdb3-core
A live copy of a busy database can capture files from different points in time. Stop the writer or use a storage snapshot that freezes the mounted data path.
$ mkdir -p /srv/influxdb3/backups/20260620-restore-test
$ cp -a /srv/influxdb3/source/core01 /srv/influxdb3/backups/20260620-restore-test/
This keeps the catalog, WAL, snapshots, Parquet files, and any version-specific marker files together under the same core01 prefix.
$ find /srv/influxdb3/backups/20260620-restore-test/core01 -maxdepth 3 -type f /srv/influxdb3/backups/20260620-restore-test/core01/catalog/v3/snapshot /srv/influxdb3/backups/20260620-restore-test/core01/wal/00000000001.wal
Larger instances may also show dbs, snapshots, or provider-specific object paths. Keep every file under the node prefix.
$ mkdir -p /srv/influxdb3/restore-test
Use a new or intentionally emptied path. Restoring over an existing object store can mix old and restored catalog or WAL files.
$ cp -a /srv/influxdb3/backups/20260620-restore-test/core01 /srv/influxdb3/restore-test/
$ docker run -d --name influxdb3-restore \ --mount type=bind,src=/srv/influxdb3/restore-test,dst=/data \ -p 8181:8181 \ influxdb:3-core \ influxdb3 serve \ --node-id core01 \ --object-store file \ --data-dir /data
If the source container uses a pinned image tag, start the restore test with the same tag before testing newer versions.
Related: How to pin InfluxDB Docker image tags
$ influxdb3 query --format csv "SELECT value FROM rack_temp" value 21.7
$ docker rm -f influxdb3-restore influxdb3-restore
$ docker start influxdb3-core influxdb3-core