Neo4j - 数据库备份和恢复

在对Neo4j数据进行备份、还原、迁移的操作时,首先要关闭neo4j

./bin/neo4j stop

数据备份到文件

./bin/neo4j-admin dump --database=graph.db --to=/root/qyn.dump

还原、迁移之前 ,关闭neo4j服务。操作同上

./bin/neo4j-admin load --from=/root/qyn.dump --database=graph.db --force

重启服务

./bin/neo4j start

注意,运行数据备份可能会警告
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual

  1. 编辑这个文件

    vi /etc/security/limits.conf

    在文件最后加入下面这段 修改最大打开文件限制

  2. soft nofile 65535
  3. hard nofile 65535

  4. 重启服务器
    再次执行上面的步骤 警告就没有了

    调优思路

  5. 增加服务器内存 和 调整neo4j配置文件

    # java heap 初始值
    dbms.memory.heap.initial_size=1g
    # java heap 最大值,一般不要超过可用物理内存的80%
    dbms.memory.heap.max_size=16g
    # pagecache大小,官方建议设为:(总内存-dbms.memory.heap.max_size)/2,
    dbms.memory.pagecache.size=2g
  6. neo4j刚启动数据是冷的需要预热

    MATCH (n)
    OPTIONAL MATCH (n)-[r]->()
    RETURN count(n.name) + count(r);
  7. 查看执行计划进行索引优化
    Cypher查询计划程序将每个查询转换为执行计划。 执行计划告诉Neo4j在执行查询时要执行哪些操作。
    对执行计划的生成,Neo4j使用的都是基于成本的优化器(Cost Based Optimizer,CBO),用于制订精确的执行过程。可以采用如下两种不同的方式了解其内部的工作机制:
    EXPLAIN:是解释机制,加入该关键字的Cypher语句可以预览执行的过程但并不实际执行,所以也不会产生任何结果。
    PROFILE:则是画像机制,查询中使用该关键字,不仅能够看到执行计划的详细内容,也可以看到查询的执行结果。

    关注指标:
    estimated rows: 需要被扫描行数的预估值
    dbhits: 实际运行结果的命中绩效
    两个值都是越小越好

使用索引和不使用索引对比
MATCH (p { name : '范闲' }) RETURN p
在之前加上profile来进行查询,可以查看查询计划

标签: Neo4j, 管理员操作

评论已关闭