听说文章开头弄张图片会更好看
概述
所谓备份,就是通过特定的办法,讲数据库的必要文件复制到转储设备的过程,数据库备份可以保证数据可靠、安全。
1. 使数据库的失效次数减到最少,从而使数据库保持最大的可用性.
2. 当数据库失效后,使恢复时间减到最少,从而使恢复的效益达到最高.
3. 当数据库失效后,确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性.
Neo4j 是时下非常流行的图数据库,但社区版却存在诸多功能限制。这里主机简述其备份方式。(如果是土豪,使用企业版可忽略此文)
备份方式
方式1:停机备份
neo4j进行备份,可以执行
bin/neo4j-admin backup --backup-dir=/mnt/backups/neo4j --database=neo4j
此备份方式为物理备份,对数据库的性能影响较少。但是社区版却不支持在一热备,需要对其进行停机。如果业务可以接受一定时间的停要的话,可以用此方法备份,省时省力。
neo4j社区版不能做到在线热备,不支持物理备份。若想进行备份。
方式2:逻辑备份,这也是本文着重介绍的方式
添加配置
neo4j.conf 文件加上:
dbms.security.procedures.unrestricted=apoc.trigger.,apoc.meta.
dbms.security.procedures.whitelist=apoc.coll.,apoc.load.,apoc.*
dbms.directories.plugins=/opt/neo4j-community-4.2.3/plugins/
apoc.conf 配置文件添加(该文件放至neo4j.conf同级目录下)
apoc.export.file.enabled=true
apoc.import.file.use_neo4j_config=false
下载插件
下载插件至apoc-4.2.0.2-all.jar 至 /opt/neo4j-community-4.2.3/plugins/ 目录下
cd /opt/neo4j-community-4.2.3/plugins/
wget https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/latest
重启Neo4j
执行导出数据语句
CALL apoc.export.cypher.all("/data/all.cypher", {
format: "cypher-shell",
useOptimizations: {type: "UNWIND_BATCH", unwindBatchSize: 20}
})
YIELD file, batches, source, format, nodes, relationships, properties, time, rows, batchSize
RETURN file, batches, source, format, nodes, relationships, properties, time, rows, batchSize;
注:
数据文件会导出至数据库服务器/data/all.cypher 目录下。所在目录下
数据恢复:
cat /data/all.cypher | ./bin/cypher-shell -a neo4j://127.0.0.1:6787 -u neo4j -p xxooxxoo --format verbose