neo4j简单的备份与还原
在规模还比较小的时候(规模大以后当然更需要备份,不过需要更加系统化的备份策略),特别是在做原型探索时期,数据库会经常有'写'操作。为了避免手误以及版本回滚,最好定时不定时进行数据库的备份。
neo4j数据库的备份还原分为两种: offline 和 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的。neo4j本身自带了dump/load功能,相当于备份/还原。
命令如下:
neo4j-admin dump --database=<database> --to=<destination-path>
neo4j-admin load --from=<archive-path> --database=<database> [–force]
建议执行步骤
以下执行命令,均以neo4j的安装目录为当前目录。试验版本为:enterprise-3.5.3
备份过程
- 关闭neo4j数据库服务
bin/neo4j stop
有时候neo4j可能会因一次性查询数据太多而挂掉。也可以进入neo4j目录bin下。
cd到bin目录下,执行启动命令:./neo4j stop
另外neo4j还有其他命令,执行方式相同:neo4j { console | start | stop | restart | status }
如果,./neo4j stop不能停止neo4j,
用kill -s 9 强制杀掉进程。
后期需要启动,调用./neo4j start 启动neo4j。
- dump备份
bin/neo4j-admin dump --database=graph.db --to=/somepath/20190319-1450.dump
--database=graph.db
这个参数后面跟的graph.db
不是一个路径,在我当前实验的机器上,路径是neo4j安装目录/data/databases/graph.db/
这个目录。里面目前有如下内容:

而--to
后面的/somepath/20190319-1450.dump
是一个你需要制定的存放dump文件的地址。

因为我现在实验用的这个图数据库规模较小,node在万级,relationship在10万级。因此,dump文件才8M多。
还原过程
如果是拷贝到另一台机器,进行数据库复原。也是先关闭服务,再执行load操作。
-
关闭服务
步骤如前文所述。 -
load还原
bin/neo4j-admin load --from=/savingpath/20190319-1450.dump --database=graph.db --force
- 启动服务
bin/neo4j-admin start
或者
bin/neo4j console
- 验证数据
load
执行完后,需要验证下看是否正确。首先确认规模性统计数字一致。比如节点数、关系数等等。然后再用一些测试样例MATCH回来仔细核查确认。最好是能维护一个测试验证集,自动跑一遍。
如果数据有问题,可以到neo4j.conf文件中,查看
dbms.allow_format_migration=true
这行是否生效,使之生效。
好了,这就是最简单的备份还原过程。以后再写写online的备份。