Neo4j通过json数据进行数据迁移

本地Neo4j数据库与服务器Neo4j数据库相差的只是ip地址,如果自己有插入所有节点和关系的代码的情况下更换一下ip地址和账密即可,如若没有源码或者部分节点是手动构建的,如何转移数据就成了问题。笔者通过自带的export json功能进行数据的迁移。

节点与关系导出

分布匹配所有的关系与节点,导出json格式数据,这里限制了显示上限为300,实际导出的文件是包含全部数据的,分别导出node.json与relation.json

数据迁移

使用python的json库导入json数据,同时进行一些违规字符的处理,之后先将节点导入数据库,同时插入旧的id值方便匹配,再将关系插入,最后删除旧id值,即可完成。速度较慢,可以考虑多线程插入提高转移速度。

import json
from py2neo import Graph, Node, Relationship, NodeMatcher


def get_graph():
    """
    connect the neo4j
    :return: neo4j object
    """
    try:
        graph = Graph("bolt://ip_addresss:7687", username='username', password='pwd')
        print("success for neo4j connection.")
        return graph
    except Except
### 数据迁移概述 在Linux环境中执行Neo4j数据库数据迁移操作,通常涉及以下几个核心步骤:停止Neo4j服务、导出源数据库文件、传输数据文件到目标机器并导入。以下是具体的操作方法: --- ### 停止Neo4j服务 为了确保数据一致性,在进行任何备份或迁移操作之前,必须先停止正在运行的Neo4j实例。可以通过以下命令完成此操作: ```bash cd $NEO4J_HOME/bin ./neo4j stop ``` 上述命令会安全地关闭Neo4j服务[^1]。 --- ### 导出源数据库文件 使用`neo4j-admin dump`命令将当前数据库导出为一个`.dump`文件。假设数据库名称为`graph.db`,可以按照如下方式执行: ```bash ./neo4j-admin dump --database=graph.db --to=/path/to/backup/graph_backup.dump ``` 这一步会在定路径下生成一个名为`graph_backup.dump`的文件,其中包含了完整的数据库状态[^4]。 --- ### 传输数据文件到目标机器 通过工具如`scp`或者FTP等方式,将刚刚创建的`.dump`文件复制到目标Linux服务器上。例如,如果目标服务器IP地址为`192.168.1.100`,用户名为`user`,则可以使用以下命令: ```bash scp /path/to/backup/graph_backup.dump user@192.168.1.100:/target/path/ ``` --- ### 还原数据库到目标机器 在目标机器上,同样需要先停止Neo4j服务,然后使用`neo4j-admin load`命令加载已传输的`.dump`文件。例如: ```bash cd $NEO4J_HOME/bin ./neo4j stop ./neo4j-admin load --from=/target/path/graph_backup.dump --database=graph.db --force ``` 此处的`--force`参数用于覆盖已有数据库文件。 --- ### 验证迁移成功 启动Neo4j服务,并验证数据是否正常加载: ```bash ./neo4j start curl -X GET http://localhost:7474/db/data/ ``` 如果返回JSON格式的结果,则表明迁移已完成且服务运行正常[^5]。 --- ### 注意事项 - 确保两台服务器上的Neo4j版本一致,否则可能会因兼容性问题导致失败。 - 如果采用的是社区版(Community Edition),需手动管理配置文件;而企业版(Enterprise Edition)支持更高级别的自动化功能[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值