无法运行 Neo4j Enterprise 1.8.2 附带的备份脚本

Posted

技术标签:

【中文标题】无法运行 Neo4j Enterprise 1.8.2 附带的备份脚本【英文标题】:Unable to run backup script shipped with Neo4j Enterprise 1.8.2 【发布时间】:2013-06-14 15:46:27 【问题描述】:

操作系统:Windows 2012 Neo4j 版本:1.8.2 企业版

我在使用 Neo4jBackup.bat 脚本备份 Neo4j 服务器时遇到问题。我正在从管理员命令提示符运行以下命令:

.\Neo4jBackup.bat -full -from single://127.0.0.1 -to E:\Neo4j-Backup

当我运行此命令时,我会收到以下输出和堆栈跟踪:

Performing full backup from 'single://127.0.0.1'
Exception in thread "main" java.lang.RuntimeException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
    at org.neo4j.index.impl.lucene.LuceneDataSource.newIndexWriter(LuceneDataSource.java:685)
    at org.neo4j.index.impl.lucene.LuceneDataSource.syncGetIndexSearcher(LuceneDataSource.java:574)
    at org.neo4j.index.impl.lucene.LuceneDataSource.getIndexSearcher(LuceneDataSource.java:540)
    at org.neo4j.index.impl.lucene.LuceneDataSource.makeSureAllIndexesAreInstantiated(LuceneDataSource.java:893)
    at org.neo4j.index.impl.lucene.LuceneDataSource.listStoreFiles(LuceneDataSource.java:833)
    at org.neo4j.com.ServerUtil.rotateLogsAndStreamStoreFiles(ServerUtil.java:129)
    at org.neo4j.backup.BackupImpl.fullBackup(BackupImpl.java:41)
    at org.neo4j.backup.BackupClient$BackupRequestType$1.call(BackupClient.java:73)
    at org.neo4j.backup.BackupClient$BackupRequestType$1.call(BackupClient.java:69)
    at org.neo4j.com.Server$4.run(Server.java:427)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
    at java.io.WinNTFileSystem.canonicalize0(Native Method)
    at java.io.Win32FileSystem.canonicalize(Unknown Source)
    at java.io.File.getCanonicalPath(Unknown Source)
    at org.apache.lucene.store.FSDirectory.getCanonicalPath(FSDirectory.java:129)
    at org.apache.lucene.store.FSDirectory.<init>(FSDirectory.java:143)
    at org.apache.lucene.store.MMapDirectory.<init>(MMapDirectory.java:93)
    at org.apache.lucene.store.FSDirectory.open(FSDirectory.java:180)
    at org.apache.lucene.store.FSDirectory.open(FSDirectory.java:172)
    at org.neo4j.index.impl.lucene.LuceneDataSource$DirectoryGetter$1.getDirectory(LuceneDataSource.java:914)
    at org.neo4j.index.impl.lucene.LuceneDataSource.newIndexWriter(LuceneDataSource.java:664)
    ... 15 more

我做错了什么?与备份相关的 Neo4j 设置设置为:

online_backup_enabled=true
online_backup_port=6362

感谢您的帮助。谢谢。

阿米尔。

【问题讨论】:

我没有收到任何关于这个问题的解决方案。有人在 Windows 上运行 Neo4j 吗?如果是这样,您是否尝试过使用 Neo4j 附带的备份脚本来备份您的数据? 你尝试过类似Neo4jBackup.bat -full -from single://127.0.0.1 -to E:\\Neo4j-Backup 是的,我已经用 E:\\Neo4j-Backup 试过了。我也尝试过 E://Neo4j-Backup 的变体。那里也没有运气。 我尝试使用命令 ./neo4j-backup -full -from single://[machine IP] -to ~/backup-neo4j 从 Mac OSX 机器运行备份,结果是最初发布的堆栈跟踪。我开始相信 Neo4j 中的备份脚本和工具刚刚损坏。有什么想法吗? 您保存服务器数据的目录的名称是什么?问题似乎出在服务器端,而不是备份客户端。 【参考方案1】:

您能否尝试对备份位置使用有效的 URI 语法,例如

.\Neo4jBackup.bat -full -from single://127.0.0.1 -to /E:/Neo4j-Backup

这行得通吗?

【讨论】:

不,它不起作用。我收到完全相同的错误消息。我准确地运行了您提供的命令。还有其他想法吗? 我尝试使用命令 ./neo4j-backup -full -from single://[machine IP] -to ~/backup-neo4j 从 Mac OSX 机器运行备份,结果是最初发布的堆栈跟踪。我开始相信 Neo4j 中的备份脚本和工具刚刚损坏。有什么想法吗?【参考方案2】:

尝试像这样运行命令

Neo4jBackup.bat -full -from single://127.0.0.1 -to E:/Neo4j-Backup

【讨论】:

我运行了您输入的命令。结果与最初描述的错误消息相同。还有其他想法吗? 检查您是否对该文件夹有写入权限?您是否尝试过更改备份文件夹的位置? 我在管理员命令提示符下尝试了以下操作: - 使用复制命令将数据写入备份文件夹(成功) - 将 Neo4j 的备份命令运行到备份文件夹(失败) - 创建一个服务器上另一个本地驱动器上的新目录并运行 Neo4j 备份命令(失败)- 在另一个本地驱动器上运行 Neo4j 备份命令而不先创建目录(失败) 我尝试使用命令./neo4j-backup -full -from single://[machine IP] -to ~/backup-neo4j 从 Mac OSX 机器运行备份,结果是最初发布的堆栈跟踪。我开始相信 Neo4j 中的备份脚本和工具刚刚损坏。有什么想法吗?

以上是关于无法运行 Neo4j Enterprise 1.8.2 附带的备份脚本的主要内容,如果未能解决你的问题,请参考以下文章

删除 neo4j 1.8 中的所有节点和关系

无法在GitLab CI docker-in-docker中对neo4j数据库运行测试

neo4j关闭和开启密码访问权限

neo4j数据库迁移---------Neo4j数据库导入导出的方法

无法在Gentoo上启动neo4j 3.0.0

neo4j数据库迁移---------Neo4j数据库导入导出的方法