gpt4 book ai didi

sphinx - 运行两个 searchd 实例的问题

转载 作者:行者123 更新时间:2023-12-02 09:59:03 26 4
gpt4 key购买 nike

我刚刚将 Sphinx 服务器从 1.10-beta 更新到 2.0.6-release,现在我遇到了 searchd 的一些问题。以前,我们可以通过指定两个不同的配置文件来运行两个相邻的 searchd 实例,即:

searchd --config /etc/sphinx/sphinx.conf
searchd --config /etc/sphinx/sphinx.staging.conf

sphinx.conf 监听 9306:mysql419312,而 sphinx.staging.conf 监听 9307:mysql419313

但是,在我们更新到 2.0.6 后,第二个实例从未启动。或者更确切地说..输出使它看起来像是启动了,并且创建了一个pid文件等。但由于某种原因,只有第一个searchd实例保持运行,而第二个似乎立即关闭。因此,在尝试运行 searchd --config/etc/sphinx/sphinx.conf 两次(如果这是第一次启动)时,会提示 pid 文件正在使用中,尝试运行 searchd --config/etc/sphinx/sphinx.staging.conf (如果这是第二个启动的实例)一次又一次“启动”守护进程,只是没有创建新进程。请注意,如果我在首次创建进程时切换这些命令,则 sphinx.conf 是未真正启动的实例。

我已经检查并重新检查,这些端口仅由 searchd 使用。

有人知道我接下来可以做什么/尝试什么吗?我已经在 ubuntu 10.04 LTS 上从源代码安装了它:

./configure --prefix /etc/sphinx --with-mysql --enable-id64 --with-libstemmer
make -j4 install

最佳答案

self 提醒:检查日志!

RT 索引使用二进制日志来启用崩溃恢复。由于我的旧配置文件没有指定存储这些文件的路径,因此 searchd 的两个实例都尝试写入相同的二进制日志。最后启动的实例当然不允许操作这些文件,因此退出并出现 fatal error :

[Fri Nov  2 17:13:32.262 2012] [ 5346] FATAL: failed to lock
'/etc/sphinx/var/data/binlog.lock': 11 'Resource temporarily unavailable'
[Fri Nov 2 17:13:32.264 2012] [ 5345] Child process 5346 has been finished,
exit code 1. Watchdog finishes also. Good bye!

解决方案很简单,确保在每个配置文件的 searchd 配置部分中指定 binlog_path:

searchd
{
[...]
binlog_path = /path/to/writable/directory
[...]
}

关于sphinx - 运行两个 searchd 实例的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13198690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com