У меня Neo4J Enterprise server 4.0 с официальным docker образом "neo4j: 4.0-enterprise". Сервер был запущен более месяца с 3 настроенными базами данных. Сервер выполняется как:
docker run --rm \
-v /home/neo4j:/data -v /var/log/neo4j:/logs \
-e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
-e NEO4J_dbms_mode=SINGLE \
-e NEO4J_AUTH=neo4j/secure-password \
-e NEO4J_dbms_memory_heap_initial__size=5100m \
-e NEO4J_dbms_memory_heap_max__size=5100m \
-e NEO4J_dbms_memory_pagecache_size=6900m \
-p 7474:7474 -p 7687:7687 \
--name neo4j \
neo4j:4.0-enterprise
Не удалось выполнить очень простой CYPHER в консоли браузера neo4j в одной из баз данных (песочнице) со следующим сообщением об ошибке:
MATCH (n:IdentityProviderType) SET n.protocol = n.value
Newly created token should be unique.
База данных содержит только 2 узла с меткой IdentityProviderType
.
После перезапуска сервера docker restart neo4j
базе данных не удалось подключиться к сети, показывая следующее сообщение после выполнения :sysinfo
:
An error occurred! Unable to start database with name 'sandbox'
Остановка сервера Neo4J и выполнение:
docker run --rm -it \
-v /home/neo4j:/data \
-e NEO4J_ACCEPT_LICENSE_AGREEMENT=yes \
neo4j:4.0-enterprise \
neo4j-admin check-consistency --database=sandbox
2020-01-29 15:32:57.724+0000 INFO [o.n.k.i.s.f.RecordFormatSelector] Selected RecordFormat:StandardV4_0[SF4.0.0] record format from store /data/databases/sandbox
2020-01-29 15:32:57.726+0000 INFO [o.n.k.i.s.f.RecordFormatSelector] Format not configured for store /data/databases/sandbox. Selected format from the store files: RecordFormat:StandardV4_0[SF4.0.0]
org.neo4j.token.api.NonUniqueTokenException: The PropertyKey NamedToken[name:protocol, id:86, internal:false] is not unique, it existed as null.
at org.neo4j.token.TokenRegistry.checkNameUniqueness(TokenRegistry.java:199)
at org.neo4j.token.TokenRegistry.insertAllChecked(TokenRegistry.java:174)
at org.neo4j.token.TokenRegistry.setInitialTokens(TokenRegistry.java:64)
at org.neo4j.token.AbstractTokenHolderBase.setInitialTokens(AbstractTokenHolderBase.java:46)
at org.neo4j.token.TokenHolders.setInitialTokens(TokenHolders.java:59)
at org.neo4j.consistency.ConsistencyCheckService.runFullConsistencyCheck(ConsistencyCheckService.java:230)
at org.neo4j.consistency.ConsistencyCheckService.runFullConsistencyCheck(ConsistencyCheckService.java:158)
at org.neo4j.consistency.CheckConsistencyCommand.execute(CheckConsistencyCommand.java:137)
at org.neo4j.cli.AbstractCommand.call(AbstractCommand.java:60)
at org.neo4j.cli.AbstractCommand.call(AbstractCommand.java:30)
at picocli.CommandLine.executeUserObject(CommandLine.java:1743)
at picocli.CommandLine.access$900(CommandLine.java:145)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2101)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2068)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:1935)
at picocli.CommandLine.execute(CommandLine.java:1864)
at org.neo4j.cli.AdminTool.execute(AdminTool.java:78)
at org.neo4j.cli.AdminTool.main(AdminTool.java:59)
Как восстановить базу данных, которая не запускается?
Я не могу найти ничего в документации, которая помогает мне решать проблемы такого типа.
Спасибо за вашу помощь,
Rogelio