Как сбросить / загрузить базу данных Neo4j в Azure? - PullRequest
0 голосов
/ 25 августа 2018

Обыскал рынок в Azure и установил Neo4j High Availability Cluster

и работающий в данный момент кластер из 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/

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Если это сборка Windows, попробуйте запустить терминал от имени администратора и использовать ту же команду. Если это сборка Linux, попробуйте запустить команду с помощью sudo. Поскольку запрос поступил несколько месяцев назад, пожалуйста, поделитесь информацией, если вы смогли решить свою проблему другими способами.

В Linux

~$ sudo neo4j-admin dump --database=graph.db --to=graph.dump
0 голосов
/ 29 августа 2018

Журналы ошибок ясно показывают, что вы, возможно, выполняете дамп / загрузку базы данных не с тем пользователем (другой пользователь, а не пользователь с ролью '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, сначала вам нужно закрыть базу данных ( Не ВМ ) следующим образом:

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

Надеюсь, это поможет !!

...