Aggregate a database backup chain

Command

The aggregate command turns a a chain of backup artifacts into a single full backup artifact.

backup chain aggregation

The benefits of aggregating a backup chain are notably:

  • Reduces the size of backup artifacts in a given backup folder.

  • Keeps the recovery time objective (RTO) low by generating a single backup artifact ready to be restored. As part of the aggregation, transactions contained in the differential backups are applied to the store contained in the full backup artifact. This operation is called recovery and can be costly.

  • Reduces the risk of losing chain’s links.

Syntax

neo4j-admin database aggregate-backup [-h] [--expand-commands]
                                      [--verbose] [--keep-old-backup[=true|false]]
                                      [--parallel-recovery[=true|false]]
                                      [--additional-config=<file>]
                                      --from-path=<path> [<database>]

Description

Aggregates a chain of backup artifacts into a single artifact.

Parameters

Table 1. neo4j-admin database aggregate-backup parameters
Parameter Description

<database>

Name of the database for which to aggregate the artifacts. Can contain * and ? for globbing.

Options

Table 2. neo4j-admin database aggregate-backup options
Option Description Default

--additional-config=<file>

Configuration file with additional configuration.

--expand-commands

Allow command expansion in config value evaluation.

--from-path=<path>

Accepts either a path to a single artifact file or a folder containing backup artifacts.

When a file is supplied, the <database> parameter should be omitted. The option to supply a file is only available in Neo4j 5.2 and later.

-h, --help

Show this help message and exit.

--keep-old-backup[=true|false]

If set to true, the old backup chain is not removed.

false

--parallel-recovery[=true|false]

Allow multiple threads to apply pulled transactions to a backup in parallel. For some databases and workloads, this may reduce aggregate times significantly. Note: this is an EXPERIMENTAL option. Consult Neo4j support before use.

false

--verbose

Enable verbose output.

As of Neo4j 5.19, the --from-path=<path> option can also load backup artifacts from AWS S3 URIs. Neo4j uses default AWS credentials to access AWS S3 URIs.

Examples

An example of how to perform aggregation of a set of backups located in a given folder for the neo4j database.
bin/neo4j-admin database aggregate-backup --from-path=/mnt/backups/ neo4j

The command first looks inside the /mnt/backups/ directory for a backup chain for the database neo4j. If found, it is then aggregated into a single backup artifact.

An example of how to perform aggregation of a set of backups located in a given folder for the neo4j database in an AWS S3 URI.
bin/neo4j-admin database aggregate-backup --from-path=s3://mnt/backups/ neo4j
An example of how to perform aggregation of a set of backups identified using a given backup file for the neo4j database.
bin/neo4j-admin database aggregate-backup --from-path=/mnt/backups/neo4j-2022-10-18T13-00-07.backup

The command checks the /mnt/backups/ directory for a backup chain including the file neo4j-2022-10-18T13-00-07.backup, for the database neo4j. If found, it is then aggregated into a single backup artifact. This option is only available in Neo4j 5.2 and later.