1.备份方式
neo4j目前有三种备份方式:
(1)java在线备份,通过java程序可在neo4j启动状态下备份数据,也可远程备份(社区版本目前不支持)
(2)neo4j-admin工具,可在neo4j数据库关闭情况下本地备份
(3)neo4j-backup工具,可在neo4j启动状态下在线备份,可远程备份。
采用以上备份之前,需要在conf/neo4j.conf中配置如下内容:
dbms.backup.enabled=true
dbms.backup.address=<主机名或者ip>:6362
2.备份操作
(1)neo4j-admin的操作,需要关闭数据库,不然会出现以下错误:
数据库关闭之后,执行neo4j-admin操作,如: neo4j-admin dump --database=graph.db --to=/home/neo4j/databackup/20190222.dump 表示将graph.db数据库备份到/home/neo4j/databackup目录下,文件名称为:20190222.dump。
(2)neo4j-admin的远程增量备份(数据库需运行),其中fallback-to-full=true表示当正能量备份发生错误时候,转换成全量备份。(好处是当前库是最新的)
neo4j-admin backup --from 192.168.0.10 --backup-dir=/home/neo4j/databackup/ --name=graph.db_zlbf --fallback-to-full=true --check- consistency=true
3.恢复
使用neo4j-admin命令进行恢复操作,恢复之前数据库需要关闭。
(1)dump文件恢复
neo4j-admin load --from=/home/neo4j/databackup/ 20190222.dump --database=graph.db --force
(2)备份数据文件恢复
neo4j-admin restore --from=/home/neo4j/databackup/graph.db_backup --database=graph.db --force
一个是load,一个是restore。
(3)一个简单的备份脚本,添加到linux的crontab下,定时执行。
time=date '+%y-%m-%d %H:%M:%S' file=date '+%y-%m-%d' echo $time echo $file echo ‘开始备份…’ /home/neo4j/neo4j-enterprise-2.3.1/bin/ neo4j-admin backup --from 192.168.0.10 --backup-dir=/home/noe4j/databackup/$file --name=graph.db echo ‘备份完成’
完~~~~