gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:08:56 27 4
gpt4 key购买 nike

在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?

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

转储/加载手册似乎没有解释如何关闭数据库或应该关闭集群中的哪个虚拟机(所有三个或仅主虚拟机)。 https://neo4j.com/docs/operations-manual/current/tools/dump-load/

最佳答案

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

"You do not have permission to dump the database -- is Neo4j running as a different user?"

您以哪个用户身份运行这些命令?也许您可以按如下方式进行健全性检查:

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

希望对你有帮助!!

关于azure - 如何在 Azure 中转储/加载 Neo4j 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com