Restore a database dump
A database dump can be loaded to a Neo4j instance using the load
command of neo4j-admin
.
From Neo4j 5.20, the neo4j-admin database load
command also supports loading a database from full database backup artifacts.
Change Data Capture does not capture any data changes resulting from the use of |
Command
The neo4j-admin database load
command loads a database from an archive created with the neo4j-admin database dump
command or from full Neo4j Enterprise backup (available from Neo4j 5.20).
Alternatively, neo4j-admin database load
can accept a dump from standard input, enabling it to accept input from neo4j-admin database dump
or another source.
The command can be run from an online or an offline Neo4j DBMS.
If you are replacing an existing database, you have to shut it down before running the command.
If you are not replacing an existing database, you must create the database (using CREATE DATABASE
against the system
database) after the load operation finishes.
neo4j-admin database load
must be invoked as the neo4j
user to ensure the appropriate file permissions.
Syntax
neo4j-admin database load [-h] [--expand-commands] [--info] [--verbose] [--overwrite-destination[=true|false]]
[--additional-config=<file>] [--from-path=<path> | --from-stdin] <database>
Description
Load a database from an archive.
<archive-path> must be a directory containing an archive(s).
Archive can be a database dump created with the dump command, or can be a full backup artifact created by the backup command from Neo4j Enterprise.
If neither --from-path
or --from-stdin
is supplied server.directories.dumps.root
setting will be searched for the archive.
Existing databases can be replaced by specifying --overwrite-destination
.
It is not possible to replace a database that is mounted in a running Neo4j server.
If --info
is specified, then the database is not loaded, but information (i.e. file count, byte count, and format of load file) about the archive is printed instead.
Parameters
Parameter | Description | Default |
---|---|---|
|
Name of the database to load. Can contain |
|
Options
Option | Description | Default |
---|---|---|
|
Configuration file with additional configuration. |
|
|
Allow command expansion in config value evaluation. |
|
|
Path to a directory containing archive(s). |
|
|
Read archive from standard input. |
|
|
Show this help message and exit. |
|
|
Print meta-data information about the archive file, instead of loading the contained database. |
|
|
If an existing database should be replaced. |
|
From Neo4j 5.19, the |
Example
The following are examples of how to load the dump of the neo4j
database (neo4j.dump) created in the section Back up an offline database, using the neo4j-admin database load
command.
When replacing an existing database, you have to shut it down before running the command.
The --overwrite-destination
option is required because you are replacing an existing database.
If you are not replacing an existing database, you must create the database (using CREATE DATABASE
against the system
database) after the load operation finishes.
The command looks for a file called <database>.dump where |
When using the |
|
Load a dump from a local directory
You can load a dump from a local directory using the following command:
bin/neo4j-admin database load --from-path=/full-path/data/dumps <database> --overwrite-destination=true
Starting from Neo4j 5.20, you can use the same command to load the database from its full backup artifact:
bin/neo4j-admin database load --from-path=/full-path/to/backups <database> --overwrite-destination=true
The following example shows how to designate a specific archive for the load
command.
cat foo.dump | neo4j-admin database load --from-stdin mydatabase
Load a dump from an AWS S3 storage
This feature is available from Neo4j 5.19.
You can load a dump from an AWS S3 storage using the following steps.
Neo4j uses the AWS SDK v2 to call the APIs on AWS using AWS URLs.
Alternatively, you can override the endpoints so that the AWS SDK can communicate with alternative storage systems, such as Ceph, Minio, or LocalStack, using the system variables |
-
Ensure that the AWS CLI is installed and configured with the necessary credentials.
-
Install the AWS CLI by following the instructions in the AWS official documentation — Install the AWS CLI version 2.
-
Use
aws configure
command to set youraws_access_key_id
andaws_secret_access_key
from AWS. -
Create an S3 bucket and a directory to store the backup files using the AWS CLI:
aws s3 mb --region=us-east-1 s3://myBucket aws s3api put-object --bucket myBucket --key myDirectory/
For more information on how to create a bucket and use the AWS CLI, see the AWS official documentation — Use Amazon S3 with the AWS CLI and Use high-level (s3) commands with the AWS CLI.
-
Verify that the
~/.aws/config
is correct by running the following command:cat ~/.aws/config
The output should look like this:
[default] region=eu-north-1
-
Verify that the
~/.aws/credentials
is correct:cat ~/.aws/credentials
The output should look like this:
[default] aws_access_key_id=this.is.secret aws_secret_access_key=this.is.super.secret
-
-
Run the
neo4j-admin database load
command to load a dump from your AWS S3 storage:bin/neo4j-admin database load --from-path=s3://myBucket/myDirectory/ <database> --overwrite-destination=true