服务器重新启动后无法启动数据库

时间:2020-01-29 15:40:30

标签: docker neo4j

我有一个运行官方docker映像“ neo4j:4.0-enterprise”的Neo4J Enterprise Server 4.0。服务器已启动并运行了一个多月,其中包含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

在neo4j浏览器控制台中执行一个非常简单的CYPHER失败,其中一个数据库(沙盒)出现以下错误消息:

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

0 个答案:

没有答案