3

Sphinxサーバーを1.10-betaから2.0.6-releaseに更新しましたが、でいくつかの問題が発生しましたsearchd。以前は、searchd2つの異なる構成ファイルを指定することで、2つのインスタンスを隣り合わせで実行できました。

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

sphinx.confはとをリッスンしますが9306:mysql419312sphinx.staging.confはとをリッスンし9307:mysql41ます9313

ただし、2.0.6に更新した後は、2番目のインスタンスが開始されることはありません。というか、出力は開始したように見え、pidファイルが作成されます。しかし、何らかの理由で、最初に検索されたインスタンスのみが実行を継続し、2番目のインスタンスはすぐにシャットダウンするように見えます。したがって、searchd --config /etc/sphinx/sphinx.conf2回実行しようとすると(最初に開始された場合)、pidファイルが使用中であると文句を言い、実行しようとするとsearchd --config /etc/sphinx/sphinx.staging.conf(2番目に開始されたインスタンスの場合)デーモンが何度も「開始」されます。新しいプロセスはありません。プロセスを最初に作成するときにこれらのコマンドを切り替えるsphinx.confと、インスタンスは実際には開始されないことに注意してください。

これらのポートがによってのみ使用されることを確認し、再確認しましたsearchd

誰かが私が次に何ができる/試すことができるかについて何か考えがありますか?私はそれをubuntu10.04LTSのソースからインストールしました:

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

1 に答える 1

6

自分への注意:ログを確認してください!

RTインデックスは、バイナリログを使用してクラッシュリカバリを有効にします。私の古い設定ファイルはこれらを保存する場所のパスを指定していなかったので、両方のインスタンスがsearchd同じバイナリログに書き込もうとしました。もちろん、最後に開始されたインスタンスはこれらのファイルを操作することを許可されていなかったため、致命的なエラーで終了しました。

[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!

解決策は単純でした。各構成ファイルbinlog_pathの構成セクション内を必ず指定してください。searchd

searchd
{
[...]
   binlog_path = /path/to/writable/directory
[...]
}
于 2012-11-02T16:35:06.727 に答える