Mongodb

Mongodb 分片 - mongos 程序的初始化腳本?

  • April 22, 2013

我一直將 mongodb 作為副本集執行,並且最近嘗試移動到分片集群。

我有點不確定的一件事是我應該如何啟動 mongos 程序。以前我在安裝 mongodb 時使用了 10gen rpms,它為 mongod 服務安裝了一個 init.d 腳本。我想讓 mongos 以類似的方式執行,但我不確定我應該如何真正做到這一點。是編寫自定義初始化腳本的情況嗎?

我在 Debian 6 和 Mongodb 2.4

$$ I’d previously posted this quesion in the mongodb google group, but am copying here as I didn’t get any response - I’ll add any responses here too $$

您已在答案中連結了相關的官方請求,SERVER-3748確實解釋了這些目前不存在的一些原因。

最基本的原因是,如果mongos沒有至少一個配置伺服器啟動並工作,您就無法啟動,否則它將拒絕啟動,這使得它不適合使用 init 腳本(外部依賴項)。通常,當沒有檢查失敗原因的好方法時,您希望避免服務將無法啟動。

但是,給人們一個腳本而不是讓他們自己修改/編寫一個腳本仍然是有益的,因此存在 Jira 問題。

我建議這樣做的方法是將任何腳本基於現有的mongodinit 腳本,並簡單地修改它以mongodmongos適當的地方替換。這是 Debian 腳本的目前版本:

https://github.com/mongodb/mongo/blob/master/debian/init.d

您需要更改的內容:

> DAEMON=/usr/bin/mongos
> DESC=mongos-router
> 
> NAME=mongos
> 
> CONF=/etc/mongos.conf 
> PIDFILE=/var/run/$NAME.pid 
> ENABLE_MONGODB=yes

這樣做的好處是,在您安裝了 10gen 軟體包之後,使用者已經設置好了,並且您mongod在系統上擁有了可供參考的腳本。

您將需要為您的 mongos 創建具有適當值的配置文件,並且可能需要調整其他一些事情 - 關鍵是在使任何內容永久化之前進行測試。

一旦您通過測試確認您的腳本可以按您的意願工作,那麼您可以使用永久添加它update-rc.d

引用自:https://serverfault.com/questions/501473