A, neo4j backup
Neo4j restore the backup database is divided into two: offline and online.
Offline backup
- dump
Dump a database into a single-file archive.
- load
Load a database from an archive created with the dump command.
Online backup
- backup
Perform an online backup from a running Neo4j enterprise server.
- restore
Restore a backed up database.
二、offline backup
In operation of the Neo4j data backup, restore, migrate, close the first Neo4j;
CD% NEO4J_HOME% / bin
./neo4j STOP
backup data to a file
./neo4j-admin dump --database = graph.db --to = /home/2018.dump
Thereafter, data reduction, the generated copy of the document stored in another version of the same environment
(the test can be emptied Neo4j library operation: match (n) detach delete n )
reduction, before the migration, Close neo4j service. Operation supra;
data import:
./neo4j-admin --from = Load / Home / 2016-10-02.dump --database = graph.db --force
Restart Service:
./neo4j Start
or
bin/neo4j console
- Verify data
load
after the implementation, verification is needed to see if correct. First make sure the same scale statistics. For example, the number of nodes, the number of relationships and so on. Then come back and then some test samples MATCH carefully checked to confirm. It is best to maintain a set of validation tests, automatically run again.
If the data in question, can go to neo4j.conf file to see
dbms.allow_format_migration=true
if it come into force, bring it into force.
Three, online backup
1.1. Backup commands
A Neo4j database can be backed up in online mode, using the backup
command of neo4j-admin
.
Syntax
neo4j-admin backup --backup-dir=<backup-path> --name=<graph.db-backup>
[--from=<address>] [--protocol=<any|catchup|common>]
[--fallback-to-full[=<true|false>]]
[--pagecache=<pagecache>]
[--timeout=<timeout>]
[--check-consistency[=<true|false>]]
[--additional-config=<config-file-path>]
[--cc-graph[=<true|false>]]
[--cc-indexes[=<true|false>]]
[--cc-label-scan-store[=<true|false>]]
[--cc-property-owners[=<true|false>]]
[--cc-report-dir=<directory>]
Options
Option | Default | Description |
---|---|---|
--backup-you |
Directory to place backup in. |
|
--name |
Name of backup. If a backup with this name already exists an incremental backup will be attempted. |
|
--from |
localhost:6362 |
Host and port of Neo4j. |
--protocol |
any |
Protocol over which to perform backup. If set to |
--fallback-to-full |
true |
If an incremental backup fails backup will move the old backup to <name>.err.<N> and fallback to a full backup instead. |
--pagecache |
8M |
The size of the page cache to use for the backup process. |
--timeout |
20m |
Timeout in the form <time>[ms|s|m|h], where the default unit is seconds. This is a debugging option that should only be used if instructed to by Neo4j Professional Services. |
--check-consistency |
true |
If a consistency check should be made. |
--additional-config |
Configuration file to supply additional configuration in. |
|
--cc-graph |
true |
Perform checks between nodes, relationships, properties, types and tokens. |
--cc-indexes |
true |
Perform checks on indexes. |
--cc-label-scan-store |
true |
Perform checks on the label scan store. |
--cc-property-owners |
false |
Perform additional checks on property ownership. This check is very expensive in time and memory. |
--cc-report-dir |
. |
Directory where consistency report will be written. |
1.2. Full backups
A full backup is performed whenever there is no backup directory specified.
In this example, set environment variables in order to control memory usage.
The page cache is defined by using the command line option --pagecache
. Further, the HEAP_SIZE
environment variable will specify the maximum heap size allocated to the backup.
Now you can perform a full backup:
$neo4j-home> export HEAP_SIZE=2G
$neo4j-home> mkdir /mnt/backup
$neo4j-home> bin/neo4j-admin backup --from=192.168.1.34 --backup-dir=/mnt/backup --name=graph.db-backup --pagecache=4G
Doing full backup...
2017-02-01 14:09:09.510+0000 INFO [o.n.c.s.StoreCopyClient] Copying neostore.nodestore.db.labels
2017-02-01 14:09:09.537+0000 INFO [o.n.c.s.StoreCopyClient] Copied neostore.nodestore.db.labels 8.00 kB
2017-02-01 14:09:09.538+0000 INFO [o.n.c.s.StoreCopyClient] Copying neostore.nodestore.db
2017-02-01 14:09:09.540+0000 INFO [o.n.c.s.StoreCopyClient] Copied neostore.nodestore.db 16.00 kB
...
...
...
If you do a directory listing of /mnt/backup you will now see that you have a backup of Neo4j called graph-db.backup
.
1.3. Incremental backups
An incremental backup is performed whenever an existing backup directory is specified, and the transaction logs are present since the last backup. The backup command will then copy any new transactions from Neo4j and apply them to the backup. The result will be an updated backup that is consistent with the current server state.
The transaction log files should be rotated and pruned based on the provided configuration. For example, setting dbms.tx_log.rotation.retention_policy=3 files
will keep backup transaction logs to 3 files. You can use the --additional-config
parameter to override this configuration.
This example assumes that you have performed a full backup as per the previous example. In the same way as before, make sure to control the memory usage.
To perform an incremental backup you need to specify the location of your previous backup:
$neo4j-home> export HEAP_SIZE=2G
$neo4j-home> bin/neo4j-admin backup --from=192.168.1.34 --backup-dir=/mnt/backup --name=graph.db-backup --fallback-to-full=true --check-consistency=true --pagecache=4G
Destination is not empty, doing incremental backup...
Backup complete.
The incremental backup will fail if the existing directory does not contain a valid backup and --fallback-to-full=false
. It will also fail if the required transaction logs have been removed and --fallback-to-full=false
. Setting --fallback-to-full=true
is a safeguard which will result in a full backup in case an incremental backup cannot be performed.
It is important to note that --check-consistency
is true
by default. For a quicker incremental backup we can set this to --check-consistency=false
and --fallback-to-full=false
.
When copying outstanding transactions, the server needs access to the transaction logs. These logs are maintained by Neo4j and are automatically removed after a period of time, based on the parameter When designing your backup strategy it is important to configure |
1.4. Exit codes
neo4j-admin backup
will exit with different codes depending on success or error. In the case of error, this includes details of what error was encountered.
Code | Description |
---|---|
|
Success. |
|
Backup failed. |
|
Backup succeeded but consistency check failed. |
|
Backup succeeded but consistency check found inconsistencies. |
Restore a backup
This section describes how to restore from a backup of a Neo4j database.
This section includes:
2.1. Restore commands
A Neo4j database can be restored using the restore
command of neo4j-admin
.
Syntax
neo4j-admin restore --from=<backup-directory> [--database=<name>] [--force[=<true|false>]]
Options
Option | Default | Description |
---|---|---|
--from |
Path to backup to restore from. |
|
--database |
graph.db |
Name of database. |
--force |
false |
If an existing database should be replaced. |
2.2. Restore a single database
To restore from a backup, follow these steps:
- If the database is running, shut it down.
- Run
neo4j-admin restore
. - Start up the database.
Restore the database graph.db
from the backup located in /mnt/backup/graph.db-backup. Note that the database to be restored must be shut down.
neo4j-home> bin/neo4j stop
neo4j-home> bin/neo4j-admin restore --from=/mnt/backup/graph.db-backup --database=graph.db --force
neo4j-home> bin/neo4j start
2.3. Restore a Causal Cluster
To restore from a backup in a Causal Cluster, follow these steps:
- Shut down all database instances in the cluster.
- Run the
neo4j-admin unbind
command on each of the Core Servers. - Restore the backup on each instance, using
neo4j-admin restore
. -
If you are restoring onto new hardware, please review the Causal Clustering settings in neo4j.conf.
In particular, check the settings
causal_clustering.initial_discovery_members
,causal_clustering.minimum_core_cluster_size_at_formation
, andcausal_clustering.minimum_core_cluster_size_at_runtime
, and ensure that they correctly reflect the new setup. - Start the database instances.
forward from:
https://blog.csdn.net/c1052981766/article/details/79530061
https://www.jianshu.com/p/9095e29974a6
https://neo4j.com/docs/operations-manual/current/backup/performing/