Ubuntu neo4j 1.6.M02数据库似乎已损坏;我如何恢复它?

Ubuntu neo4j 1.6.M02数据库似乎已损坏;我如何恢复它?,ubuntu,neo4j,corrupt-data,Ubuntu,Neo4j,Corrupt Data,我在ubuntu机器上有一个neo4j实例,它在服务启动时关闭。 因此,现在服务拒绝启动: Starting Neo4j Server... process [3807]... waiting for server to be ready.. BAD. Neo4j Server may have failed to start, please check the logs. 还有日志 Feb 16, 2012 4:44:51 PM org.neo4j.server.logging.Logger

我在ubuntu机器上有一个neo4j实例,它在服务启动时关闭。 因此,现在服务拒绝启动:

Starting Neo4j Server... process [3807]... waiting for server to be ready.. BAD.
Neo4j Server may have failed to start, please check the logs.
还有日志

Feb 16, 2012 4:44:51 PM org.neo4j.server.logging.Logger log
INFO: Store files missing, or not in suitable state for upgrade. Leaving this problem for main server process to resolve.
Feb 16, 2012 4:44:51 PM org.neo4j.server.logging.Logger log
INFO: Starting Neo Server on port [7474] with [20] threads available
Feb 16, 2012 4:44:51 PM org.mortbay.log.Slf4jLog info
INFO: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
Feb 16, 2012 4:44:51 PM org.neo4j.server.logging.Logger log
INFO: Using database at /home/dan/personal/neo4j-community-1.6.M02/data/graph.db
Feb 16, 2012 4:44:52 PM org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog doInternalRecovery
INFO: Non clean shutdown detected on log [/home/dan/personal/neo4j-community-1.6.M02/data/graph.db/nioneo_logical.log.1]. Recovery started ...
你知道怎么做吗

  • 恢复数据库
  • 如果机器再次出现故障,是否防止再次发生这种情况
  • 谢谢

    更新: 尝试运行
    sudo./bin/neo4j shell-path data/graph.db/
    ,这是输出

    Feb 16, 2012 3:57:16 PM org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog doInternalRecovery
    INFO: Non clean shutdown detected on log [/home/dan/personal/neo4j-community-1.6.M02/data/graph.db/nioneo_logical.log.1]. Recovery started ...
    org.neo4j.graphdb.TransactionFailureException: Could not create data source [nioneodb], see nested exception for cause of error
        at org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:161)
        at org.neo4j.kernel.GraphDbInstance.start(GraphDbInstance.java:104)
        at org.neo4j.kernel.EmbeddedGraphDbImpl.<init>(EmbeddedGraphDbImpl.java:190)
        at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:78)
        at org.neo4j.shell.kernel.GraphDatabaseShellServer.instantiateGraphDb(GraphDatabaseShellServer.java:85)
        at org.neo4j.shell.kernel.GraphDatabaseShellServer.<init>(GraphDatabaseShellServer.java:57)
        at org.neo4j.shell.StartClient.tryStartLocalServerAndClient(StartClient.java:286)
        at org.neo4j.shell.StartClient.startLocal(StartClient.java:219)
        at org.neo4j.shell.StartClient.start(StartClient.java:159)
        at org.neo4j.shell.StartClient.main(StartClient.java:108)
    Caused by: java.lang.RuntimeException: Unexpected Exception
        at org.neo4j.helpers.Exceptions.launderedException(Exceptions.java:78)
        at org.neo4j.helpers.Exceptions.launderedException(Exceptions.java:48)
        at org.neo4j.helpers.Exceptions.launderedException(Exceptions.java:43)
        at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.<init>(NeoStoreXaDataSource.java:216)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.neo4j.kernel.impl.transaction.XaDataSourceManager.create(XaDataSourceManager.java:77)
        at org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:155)
        ... 9 more
    Caused by: java.io.IOException: Inject start failed, xid: GlobalId[NEOKERNL|3992629294259512899|39], BranchId[ 52 49 52 49 52 49 ] already injected
        at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.injectStart(XaResourceManager.java:118)
        at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.applyStartEntry(XaLogicalLog.java:486)
        at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.applyEntry(XaLogicalLog.java:445)
        at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.doInternalRecovery(XaLogicalLog.java:815)
        at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:241)
        at org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog.open(XaLogicalLog.java:187)
        at org.neo4j.kernel.impl.transaction.xaframework.XaContainer.openLogicalLog(XaContainer.java:120)
        at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.<init>(NeoStoreXaDataSource.java:177)
        ... 15 more
    ERROR (-v for expanded information):
        Could not create data source [nioneodb], see nested exception for cause of error
    
     -host      Domain name or IP of host to connect to (default: localhost)
     -port      Port of host to connect to (default: 1337)
     -name      RMI name, i.e. rmi://<host>:<port>/<name> (default: shell)
     -pid       Process ID to connect to
     -c         Command line to execute. After executing it the shell exits
     -readonly  Connect in readonly mode
     -path      Points to a neo4j db path so that a local server can be started there
     -config    Points to a config file when starting a local server
    
    Example arguments for remote:
        -port 1337
        -host 192.168.1.234 -port 1337 -name shell
        -host localhost -readonly
        ...or no arguments for default values
    Example arguments for local:
        -path /path/to/db
        -path /path/to/db -config /path/to/neo4j.config
        -path /path/to/db -readonly
    
    2012年2月16日下午3:57:16 org.neo4j.kernel.impl.transaction.xaframework.xalogicallo doInternalRecovery
    信息:在日志[/home/dan/personal/neo4j-community-1.6.M02/data/graph.db/nioneo_logical.log.1]上检测到非干净关机。恢复开始了。。。
    org.neo4j.graphdb.TransactionFailureException:无法创建数据源[NIONODB],请参阅嵌套异常以了解错误原因
    位于org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:161)
    位于org.neo4j.kernel.GraphDbInstance.start(GraphDbInstance.java:104)
    位于org.neo4j.kernel.EmbeddedGraphDbImpl.(EmbeddedGraphDbImpl.java:190)
    位于org.neo4j.kernel.EmbeddedGraphDatabase。(EmbeddedGraphDatabase.java:78)
    位于org.neo4j.shell.kernel.GraphDatabaseShellServer.InstanceGraphDB(GraphDatabaseShellServer.java:85)
    位于org.neo4j.shell.kernel.GraphDatabaseShellServer。(GraphDatabaseShellServer.java:57)
    位于org.neo4j.shell.StartClient.tryStartLocalServerAndClient(StartClient.java:286)
    位于org.neo4j.shell.StartClient.startocal(StartClient.java:219)
    位于org.neo4j.shell.StartClient.start(StartClient.java:159)
    位于org.neo4j.shell.StartClient.main(StartClient.java:108)
    原因:java.lang.RuntimeException:意外异常
    位于org.neo4j.helpers.Exceptions.launderdexception(Exceptions.java:78)
    位于org.neo4j.helpers.Exceptions.launderdexception(Exceptions.java:48)
    位于org.neo4j.helpers.Exceptions.launderdexception(Exceptions.java:43)
    位于org.neo4j.kernel.impl.nioneo.xa.neostorexadasource(neostorexadasource.java:216)
    位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
    位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    位于java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    位于org.neo4j.kernel.impl.transaction.XaDataSourceManager.create(XaDataSourceManager.java:77)
    位于org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:155)
    ... 9更多
    原因:java.io.IOException:注入启动失败,xid:GlobalId[neocernl | 3992629294259512899 | 39],BranchId[52 49 52 49]已注入
    位于org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.injectStart(XaResourceManager.java:118)
    位于org.neo4j.kernel.impl.transaction.xaframework.xalogicallo.applyStartEntry(xalogicallo.java:486)
    位于org.neo4j.kernel.impl.transaction.xaframework.xalogicallo.applyEntry(xalogicallo.java:445)
    位于org.neo4j.kernel.impl.transaction.xaframework.xalogicallo.doInternalRecovery(xalogicallo.java:815)
    位于org.neo4j.kernel.impl.transaction.xaframework.xalogicallo.open(xalogicallo.java:241)
    位于org.neo4j.kernel.impl.transaction.xaframework.xalogicallo.open(xalogicallo.java:187)
    位于org.neo4j.kernel.impl.transaction.xaframework.XaContainer.openlogicallo(XaContainer.java:120)
    位于org.neo4j.kernel.impl.nioneo.xa.neostorexadasource(neostorexadasource.java:177)
    ... 还有15个
    错误(-v表示扩展信息):
    无法创建数据源[NIONODB],请参阅嵌套异常以了解错误原因
    -要连接到的主机的主机域名或IP(默认值:localhost)
    -要连接到的主机的端口(默认值:1337)
    -名称RMI名称,即RMI://:/(默认值:shell)
    -要连接到的pid进程ID
    -c命令行执行。执行后,shell退出
    -只读模式下的只读连接
    -path指向neo4j db路径,以便可以在那里启动本地服务器
    -config在启动本地服务器时指向配置文件
    远程文件的示例参数:
    -1337端口
    -主机192.168.1.234-端口1337-名称外壳
    -主机localhost-只读
    …或没有默认值的参数
    局部变量的示例参数:
    -path/path/to/db
    -path/path/to/db-config/path/to/neo4j.config
    -path/path/to/db-只读
    
    好的,很遗憾,您运行的是1.6.M02,它有一个已知的问题,可能会使您的数据库处于这种状态。1.6没有这个问题。neo4j邮件列表上还有一个db有这个问题,所以我创建了这个工具:修复这样一个损坏的日志。你觉得编译和运行它舒服吗?否则,我可以将一个打包的罐子放在一起,并附带一个脚本,如:

    美元/修复双启动记录问题我的/db


    不知何故寄给你。

    你好,马蒂亚斯,请看一下我的最新问题。干杯我担心我做错了什么;现在我明白了,这是一个众所周知的问题。非常感谢!