Mongodb 分片 - mongos 程序的初始化腳本?
我一直將 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 問題。
我建議這樣做的方法是將任何腳本基於現有的
mongod
init 腳本,並簡單地修改它以mongod
在mongos
適當的地方替換。這是 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