【问题标题】:How to migrate/shift/copy/move data in Neo4j如何在 Neo4j 中迁移/转移/复制/移动数据
【发布时间】:2014-02-07 22:04:43
【问题描述】:

有谁知道如何将数据从一个 Neo4j 实例迁移到另一个实例。更准确地说,我想知道如何将数据从本地机器上的一个 Neo4j 实例移动到远程机器上的另一个实例。有没有人对此有任何想法。

我正在使用 Eclipse 和 Embedded Neo4j 在我的 Windows 机器上工作。我需要将此数据传输到 Centos 机器上的远程 Neo4j 实例。请帮我解决一下这个。

【问题讨论】:

    标签: eclipse windows neo4j centos migration


    【解决方案1】:

    不确定如何为“嵌入式 neo4j db”执行此操作。 但是对于独立的,如果你的 Windows 机器上有类似命令行工具“Putty”的东西,这应该可以工作。除了 $NEO4j_HOME,您还可以使用没有 env 变量的普通路径。

    $NEO4J_HOME/bin/neo4j stop
    
    cd $NEO4J_HOME/data
    tar -cvf graph.db.tar graph.db
    gzip graph.db.tar
    
    scp -i ~/some_path/key_for_remote_server.pem ./graph.db.tar.gz username@your_remote_domeain.com:~/
    
    ssh -i ~/some_path/key_for_remote_server.pem/ username@your_remote_domeain.com
    

    在您的远程服务器上(至少这适用于 ubuntu): 也许您需要使用“sudo”(命令前缀为 sudo)。

    mv ./graph.db.tar.gz /some_path/
    cd /some_path/
    gunzip graph.db.tar.gz
    tar -xvf graph.db.tar
    
    $NEO4J_HOME/bin/neo4j start
    $NEO4J_HOME/bin/neo4j status
    

    【讨论】:

    • 当源是 Embedded Neo4j 时,能否请您给我一些提示,告诉我如何做到这一点。我什至不明白数据存储在哪里,当我使用嵌入式 nEO4J 时。我在 Embedded Neo4j 中创建数据,然后我进入浏览器,访问相同的数据库,我找不到通过嵌入式创建的数据新4j。请帮帮我
    • 我从未使用过嵌入式 neo4j,也不打算使用它。所以无法详细说明。
    【解决方案2】:

    您可以使用 apoc 过程迁移数据,方法是在需要导出数据的 cypher shell 中运行以下查询:

    CALL apoc.export.cypher.all('myfilename.cypher');
    

    这将在导入文件夹中下载带有密码查询的文件

    转到需要导入数据的数据库实例并复制导入文件夹中的文件。使用 cypher shell 运行以下命令:

    apoc.cypher.runFile("myfilename.cypher",{}) yield row, result;
    

    更多高级选项请点击以下链接:

    【讨论】:

      【解决方案3】:

      在使用 neo4j-import 工具后,我发现以下解决方法可将数据从集群中的服务器复制到所有其他服务器:

      1. 停止所有节点。

      2. 在需要复制数据的新节点/服务器上,您必须为该图创建数据库文件夹(在我的例子中为 loadTest): /neo4j-enterprise-3.1.0/data/databases/loadTest.db

      3. 然后,保存数据的源节点/服务器,您必须在此处将 neostore.id 文件复制到目标服务器的 db 文件夹(上一步中的 loadTest.db )。

      4. 启动所有节点。在后台,neo4j 会将数据从其他集群服务器复制到新节点。

      【讨论】:

        【解决方案4】:

        对于嵌入式模式,您只需找到图形 neo4j-db 文件夹位置,然后压缩并将其发送到远程系统。

        在您调用 graphdatabaseservice 的代码中,您将给出目标位置

        检查它的相对路径,然后数据库可能在您的项目文件夹中。

        现在要在浏览器上运行数据库实例,您需要使用 neo4j 社区服务器并将其指向包含索引文件夹的文件夹。因此,如果您的 neo4j-db 位于 $project/tmp/neo4j-db 那么您将提供文件路径直到此文件夹(索引文件夹将在此文件夹内)

        编辑

        需要压缩包含架构和索引文件夹的文件夹。您可以使用独立服务器上的 Putty 在特定位置上传和解压缩文件夹。然后只需更改conf/neo4j-server.properties 文件中的org.neo4j.server.database.location

        【讨论】:

        • 不太清楚..我在 Embedded-Neo4j 的 windows 机器上使用 Java 代码将关系数据转换为图形类型数据。此过程结束后,我需要将整个事情迁移到适当的 Neo4j(非嵌入式服务器,假设在同一台机器上)。我们怎样才能做到这一点?
        • 哪个文件夹,我需要压缩和发送,你能准确告诉我那个东西吗?请考虑。
        • 为什么我们甚至需要更改属性 org.neo4j.server.database.location。它的值为 data/graph.db 。如果我理解正确,如果在我的 Java 代码中,我指向构造函数 newEmbeddedDatabaseBuilder 中的文件夹 X,那么我需要将整个 X 移动到远程服务器。到目前为止我是否正确,然后,我不明白为什么我们需要更改属性 org.neo4j.server.database.location,它只是相对路径虽然我们更改了整个文件夹(X)的位置,但它保持不变,不t它。请告诉我。
        • 您会将内容解压缩到独立服务器上的特定位置。您的服务器的 conf 应该指向您解压缩的位置。
        • org.neo4j.server.database.location 正如我所说,该属性的值为data/graph.db,即相对路径。即使我将 X 的整个位置更改为新机器,它仍然保持不变,对吗?可能是,我在这里错过了什么..
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-06
        • 2013-11-28
        • 1970-01-01
        • 2017-11-22
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多