sphinx rotate機制詳解

2021-07-04 03:50:08 字數 589 閱讀 3726

今日,發現sphinx出現 sphinx.new.sp*諸多檔案。出現這樣的情況是因為 searchd沒有載入新索引檔案。遂google之,到sphinx官網論壇後得知rotate的機制後方解決!

sphinx的searchd在啟動時會建立乙個 .spl 鎖檔案,並在關閉時會刪除它。在indexer建立索引時如果發現有 .spl檔案,則不會建立新索引,因為這時已經標誌sphinx正在執行中,除非使用 –rotate。

roate執行機制

->indexer完成索引

->傳送sighup 給searchd(同時在終端輸出索引已經完成)

->searchd接到中斷訊號->等待所有子程序退出

->重新命名 當前索引為舊索引為 .old

->重新命名 .new 索引檔案作為當前索引

->嘗試載入當前索引檔案->如果載入失敗,searchd會把.old檔案回滾為當前檔案,並把剛建立的新索引重新命名為 .new

->載入成的話:完成無縫銜接

綜上:解決問題的辦法是:

關閉searchd :killall -9 searchd

重啟 searchd :searchd -c ../sphinx.conf

sphinx rotate機制詳解

今日,發現sphinx出現 sphinx.new.sp 諸多檔案。出現這樣的情況是因為 searchd沒有載入新索引檔案。遂google之,到sphinx官網論壇後得知rotate的機制後方解決!sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立...

sphinx rotate機制詳解

sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立索引時如果發現有 spl檔案,則不會建立新索引,因為這時已經標誌sphinx正在執行中,除非使用 rotate。roate執行機制 indexer完成索引 傳送sighup 給searchd 同時...

sphinx rotate 執行機制

如果sphinx在執行中,要indexer時,需要加上 rotate引數,這樣索引完就直接生效了。原因是sphinx的searchd在啟動時會建立乙個 spl 鎖檔案,並在關閉時會刪除它。在indexer建立索引時如果發現有 spl檔案,則不會建立新索引,因為這時已經標誌sphinx正在執行中,除非...