Neo4j使用手册

首先说明:本当的操作环境是按照文档Neo4j安装及集群搭建搭建的环境下进行操作的。

Neo4j服务的启动和停止

首选确保在部署neo4j时候已经添加的环境变量,即文件/etc/profile中添加以下内容

1
2
3
4
#set neo4j environment
NEO4J_HOME=/data/neo4j
PATH=$PATH:$NEO4J_HOME/bin
export NEO4J_HOME PATH

并使之生效

1
source /etc/profile

启动测试,并将日志打印在命令行

1
neo4j console

启动neo4j

1
neo4j start

停止neo4j

1
neo4j stop

重启neo4j

1
neo4j restart

查看neo4j运行状态

1
neo4j status

Neo4j数据库的备份

离线备份和恢复

此备份方式有一个使用前提,neo4j数据库必须出处于停止状态。
使用语法:

1
2
neo4j-admin dump --database=<database> --to=<destination-path>
neo4j-admin load --from=<archive-path> --database=<database> [--force]

备份示例:

1
2
3
4
5
6
# neo4j stop
Stopping Neo4j.. stopped
# neo4j-admin dump --database=graph.db --to=/data/backups/graph.db/2019-08-22.dump
Done: 36 files, 168.1KiB processed.
# ls /data/backups/graph.db/
2019-08-22.dump

恢复示例:

1
2
# neo4j-admin load --from=/data/backups/graph.db/2019-08-22.dump --database=graph.db --force
Done: 36 files, 168.1KiB processed.

--force参数会完全覆盖原有数据库的,使用时请注意。
恢复完成后请启动neo4j服务。

在线备份与恢复

此备份方式需要停止neo4j数据库服务。
需要在配置文件中增加以下内容

1
2
dbms.backup.enabled=true
dbms.backup.address=10.186.63.112:6362

绑定ip可以0.0.0.0,建议绑定内网ip或者127.0.0.1
然后重启neo4j服务。

1
2
3
4
5
6
7
8
9
10
11
12
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>]

全量备份

设置环境变量控制内存使用情况
--pagecache用以控制页面缓存
HEAP_SIZE用以指定分配给备份的最大堆大小
示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# export HEAP_SIZE=2G
# neo4j-admin backup --from=10.186.63.112 --backup-dir=/data/backups/graph.db/ --name=graph.dbbackup --pagecache=4G
2019-08-22 08:47:25.183+0000 INFO [o.n.b.i.BackupOutputMonitor] Start receiving store files
`
`
`
2019-08-22 08:47:25.504+0000 INFO [o.n.b.i.BackupOutputMonitor] Start recovering store
2019-08-22 08:47:26.901+0000 INFO [o.n.b.i.BackupOutputMonitor] Finish recovering store
.................... 10%
.................... 20%
.................... 30%
.................... 40%
.................... 50%
.................... 60%
.................... 70%
.................... 80%
.................... 90%
Checking node and relationship counts
Backup complete.

中间输出内容很长有省略,最后可见备份完成。
备份脚本

1
2
3
4
5
6
7
8
9
10
11
# cat neo4j_full_backup.sh 
#!/bin/bash

time=`date '+%y-%m-%d %H:%M:%S'`
T=$(date +%Y%m%d%H%M%S)

echo $time
echo 'start backup...'
export HEAP_SIZE=2G
neo4j-admin backup --from=10.186.63.112 --backup-dir=/data/neo4j/backup/ --name=graph.db_full_backup_$T --pagecache=4G
echo 'finish'

增量备份

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# export HEAP_SIZE=2G
# neo4j-admin backup --from=10.186.63.112 --backup-dir=/data/backups/graph.db --name=graph.dbbackup.in --fallback-to-full=true --check-consistency=true --pagecache=4G
2019-08-22 08:56:35.251+0000 INFO [o.n.b.i.BackupOutputMonitor] Start receiving store files
`
`
`
2019-08-22 08:56:36.992+0000 INFO [o.n.b.i.BackupOutputMonitor] Finish recovering store
.................... 10%
.................... 20%
.................... 30%
.................... 40%
.................... 50%
.................... 60%
.................... 70%
.................... 80%
.................... 90%
Checking node and relationship counts
Backup complete.

中间过程省略,备份完成。
备份过程中可能出现的错误及描述:

Option Description
0 Success.
1 Backup failed.
2 Backup succeeded but consistency check failed.
3 Backup succeeded but consistency check found inconsistencies.

备份脚本

1
2
3
4
5
6
7
8
9
10
11
# cat neo4j_incr_backup.sh 
#!/bin/bash

time=`date '+%y-%m-%d %H:%M:%S'`
T=$(date +%Y%m%d%H%M%S)

echo $time
echo 'start backup...'
export HEAP_SIZE=2G
neo4j-admin backup --from=10.186.63.112 --backup-dir=/data/neo4j/backup/ --name=graph.db_incr_backup_$T --fallback-to-full=true --check-consistency=true --pagecache=4G
echo 'finish'

以上两个脚本加入定时任务

1
2
3
# crontab -l
0 0 * * 0 /data/neo4j/scripts/neo4j_full_backup.sh >> /data/neo4j/logs/backup.log
0 0 * * 1-6 /data/neo4j/scripts/neo4j_incr_backup.sh >> /data/neo4j/logs/backup.log

数据恢复

恢复使用的参数

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.

示例:

1
2
3
4
5
6
7
8
# neo4j stop
Stopping Neo4j.. stopped
# neo4j-admin restore --from=/data/backups/graph.db/ --database=graph.db --force
2019-08-22.dump graph.dbbackup/ graph.dbbackup.in/
# neo4j-admin restore --from=/data/backups/graph.db/graph.dbbackup --database=graph.db --force
# neo4j start
# neo4j status
Neo4j is running at pid 21385

其中--force参数表示覆盖。

本文标题:Neo4j使用手册

文章作者:Francis

原始链接:http://www.cnops.com/posts/471024ab.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。