无法运行 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 附带的备份脚本的主要内容,如果未能解决你的问题,请参考以下文章
无法在GitLab CI docker-in-docker中对neo4j数据库运行测试