繁体   English   中英

如何在Azure中转储/加载Neo4j数据库?

[英]How to Dump/Load Neo4j Database in Azure?

在Azure中搜索市场并安装Neo4j高可用性群集

当前正在运行的3个虚拟机集群

尝试测试转储/加载,但出现错误:

~$ neo4j-admin dump --database=graph.db --to=graph.dump
org.neo4j.commandline.admin.CommandFailed: you do not have permission to dump the 
database -- is Neo4j running as a different user?
        at org.neo4j.commandline.dbms.DumpCommand.execute(DumpCommand.java:100)
        at org.neo4j.commandline.admin.AdminTool.execute(AdminTool.java:127)
        at org.neo4j.commandline.admin.AdminTool.main(AdminTool.java:51)
Caused by: org.neo4j.commandline.dbms.CannotWriteException: Could not write to: 
/var/lib/neo4j/data/databases/graph.db/store_lock
        at org.neo4j.commandline.dbms.StoreLockChecker.check(StoreLockChecker.java:84)
        at org.neo4j.commandline.dbms.DumpCommand.execute(DumpCommand.java:86)
        ... 2 more
command failed: you do not have permission to dump the database -- is Neo4j running 
as a different user?

我应该关闭所有三个虚拟机吗? 如果是这样,我该怎么做?

“转储/加载手册”似乎没有解释如何关闭数据库或应关闭集群中的哪个VM(全部三个或仅是主要的)。 https://neo4j.com/docs/operations-manual/current/tools/dump-load/

错误日志清楚地表明您可能正在使用错误的用户(与具有“ admin”角色的用户不同的用户)执行数据库转储/加载:

“您没有转储数据库的权限-Neo4j是否以其他用户身份运行?”

您以哪个用户身份运行这些命令? 可能您可以进行如下的健全性检查:

CALL dbms.showCurrentUser()
+---------------------+
| username    | flags |
+---------------------+
| "johnsmith" | []    |
+---------------------+

要列出所有Neo4j用户,您可以尝试:

CALL dbms.security.listUsers()
+---------------------------------------------------------------------+
| username | roles                     | flags                        |
+---------------------------------------------------------------------+
| "neo4j"  | ["admin"]                 | []                           |
| "anne"   | []                        | ["password_change_required"] |
| "bill"   | ["reader"]                | ["is_suspended"]             |
| "john"   | ["architect","publisher"] | []                           |
+---------------------------------------------------------------------+

如果您当前的用户不是neo4j(或其他具有管理员角色的用户-您曾经使用过Market Place服务,那么可能会有其他用户),然后使用以下方法切换到适当的用户:

$neo4j-home> bin/cypher-shell -u neo4j -p secret

另外,要从正在运行的Neo4j服务器执行“联机”备份和还原,您可以参考官方文档的以下部分: https : //neo4j.com/docs/operations-manual/current/backup

对于脱机备份(您一直在尝试),首先需要进行数据库转储,如下所示:

$neo4j-home> bin/neo4j-admin dump --database=MyNewDB.db --to=/backups/JeffreyGoinesDB.dump
$neo4j-home> ls /backups/
$neo4j-home> JeffreyGoinesDB.dump

在将转储再次加载回Neo4j时,首先需要关闭数据库( 不是VM ),如下所示:

$neo4j-home> bin/neo4j stop
Stopping Neo4j.. stopped
$neo4j-home> bin/neo4j-admin load --from=/backups/JeffreyGoinesDB.dump --database=MyNewDB.db --force

希望能帮助到你!!

如果这是Windows版本,请尝试以管理员身份启动终端并使用相同的命令。 如果这是Linux构建,请尝试使用sudo启动命令。 由于要求是几个月前提出的,如果您能够通过其他方式解决问题,请分享详细信息。

在Linux上

~$ sudo neo4j-admin dump --database=graph.db --to=graph.dump

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM