2009-10-26 75 views
2

下面是我決定的:思考獅身人面像增量索引生產失敗

  1. 三角洲索引工作在發展正常,當我推到生產服務器
  2. 三角洲索引不工作,也沒有任何動作記錄在searchd.log
  3. 我跑的Phusion客運,並且,在the basic troubleshooting guide建議,已經證實:
    1. www數據具有運行索引rake任務(從命令李然他們權限NE手動)
    2. 路徑索引和searchd的是正確的(在/ usr/local/bin目錄)
    3. 有在production.log沒有錯誤

地球上還有什麼比我可能會丟失?我運行的是Ruby Enterprise 1.8.6,Rails 2.3.4,Sphinx 0.9.8.1和Thinking Sphinx 1.2.11。

謝謝!

回答

1

昨晚當我睡着的時候打了我。毫不奇怪,這是一個涉及糟糕配置的愚蠢問題,儘管我很驚訝它產生了它所做的結果。我想我對思考獅身人面像內部的東西瞭解不多。

最近我遷移了服務器。 sphinx.yml是這樣的:

production: 
    bin_path: '/usr/local/bin' 
    host: mysql.mysite.com 

在新的服務器,MySQL只是一個本地服務,但是我忘了刪除了這一行。有趣的是,手動耙重新索引仍然工作得很好。我很好奇斯芬克斯在嘗試重新加載增量時沒有拋出錯誤,因爲mysql.mysite.com不再存在,儘管這顯然是問題的根源。

感謝您的全力幫助,並抱歉提出這樣一個愚蠢的問題。

0

Apache/Nginx的錯誤日誌中是否有任何線索?

+0

注意到我的一個助手,一個棄用警告,但沒有什麼似乎以指示索引失敗。 – Matchu 2009-10-26 02:45:03

+0

如何通過生產服務器上的腳本/控制檯編輯記錄?那樣有用嗎? – pat 2009-10-26 05:15:42

0

下面是我要採取的下一個故障排除步驟。打開您正在使用的增量索引策略的文件(推測可能爲lib/thinking_sphinx/deltas/default_delta.rb)。找到實際生成索引命令的行。在礦(V1.1.6),這是第20行:

command = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` 
RAILS_DEFAULT_LOGGER.info(command) 
output = `#{command}` 
RAILS_DEFAULT_LOGGER.info(output) 

部署到生產和尾:

output = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` 

,如此您就可以登錄命令本身,也許記錄輸出以及更改日誌,同時修改增量索引模型。希望這會真正向你展示問題。當然,也許問題出在代碼中的其他地方,你甚至不會得到這一點,但這是我開始的地方。

0

我遇到了這個問題,發現上面提到的「bin_path」解決方案。當它看起來不起作用時,我花了一段時間才意識到,當我在「停滯」環境中進行測試時,我粘貼了「生產」示例代碼。問題解決了!

這是在確保配置,索引和啓動獅身人面像的所有rake任務都與您的乘客實例一樣以同一用戶身份運行之後。如果您以root身份登錄到服務器以運行這些任務,則它們將在控制檯中工作,但不是通過乘客。

0

我有同樣的問題。在命令行上運行,而不是在應用程序中運行。

原來,我們還有一個用於索引的slave數據庫,但slave沒有更新。

0

如上所述,在兩臺機器上面對同樣的問題。第一個我們遇到了mysql在apache2日誌中顯示的問題。似乎隻影響本地OSX機器..

第二次當我們部署到Ubuntu服務器,我們有同樣的問題。 Rails C的製作很好,沒有錯誤,Bla bla bla。

結束成爲權限問題。由於沒有問題,所以無法弄清楚這一點,儘管我想我是以root身份進行的。

使用Capistrano的和乘客,我們這樣做:

  1. 創建一個乘客的用戶並添加到www數據組
  2. 更改用戶deploy.rb是乘客
  3. 手動改變了所有的/目前檔案歸
  4. 以乘客身份登錄。
  5. 冉耙TS:重建RAILS_ENV =「生產」

工作一種享受我們...

好運