指定位置时 Solr 备份不起作用

Solr Backup Not Working When Specifying a Location

当我们进行 Solr 备份时,没有指定位置 - 它可以工作,并且会在数据目录中创建一个备份快照文件夹。

但是,指定文件夹时,例如:http://localhost:8983/solr/core_name/replication?command=backup&location=/backup_directory总是失败。

查看 Solr 日志,我看到了这个错误:

快照射击 快照创建失败后无法删除文件:///backup_directory/snapshot.20200404134436807:java.nio.file.NoSuchFileException:/backup_directory/snapshot.20200404134436807

快照射击 创建快照时出现异常

我已经搜索了几个小时来寻找解决方案。看起来其他人之前也遇到过各种 Solr 版本的问题。

通常这些错误是由于 Solr 没有对备份应该去的目录的写入权限造成的。发生这种情况是因为 Solr 在大多数情况下以不同于拥有备份目录的用户(可能是 root)运行。

您可以比较运行 Solr 的用户 - 如果您在 Linux 下发出 ps aux | grep solr 或类似命令通常会显示,以及谁拥有该目录 - 通过使用 ls -al父目录。使用 chown 将目录的所有权更改为 Solr 用户(除非它与其他进程共享 - 在这种情况下,它将取决于您想要实现的目标)。

此错误可能是由于您在设置备份位置时没有使用尾部斜线造成的。所以你需要使用命令:

http://localhost:8983/solr/core_name/replication?command=backup&location=/backup_directory/