如何在Neo4j中迁移/移位/复制/移动数据

时间:2014-02-07 22:04:43

标签: eclipse windows neo4j centos migration

是否有人知道如何将数据从一个Neo4j实例迁移到另一个实例。更确切地说,我想知道如何将数据从本地计算机上的一个Neo4j实例移动到远程计算机上的另一个实例。有没有人知道它。

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

4 个答案:

答案 0 :(得分:6)

不确定如何为“嵌入式neo4j db”执行此操作。 但是对于独立的,如果你的Windows机器上有命令行工具“Putty”,这应该可行。您可以使用不带env变量的正常路径代替$ NEO4j_HOME。

$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

答案 1 :(得分:2)

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

  1. 停止所有节点。

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

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

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

答案 2 :(得分:2)

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

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

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

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

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

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

答案 3 :(得分:1)

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

在您调用graphdatabaseservice的代码中,您将获得目标位置

检查数据库的相对路径是否可能在项目文件夹中。

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

修改

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