簡體   English   中英

啟動mongodb單服務器作為副本集通過supervisord啟用oplog

[英]starting mongodb single server as replica set to enable oplog through supervisord

我想使用命令mongod --config config/mongod.conf啟動單個 mongod 實例一旦上述過程開始運行,我還必須調用mongodb/bin/mongo --eval rs.initiate()現在問題是我正在啟動 mongod通過 supervisord 我想一個接一個地執行上述兩個操作。 supervisord 只需要 1 個命令來啟動進程,這是第一個命令。 我沒有其他地方可以運行 rs.initiate()。 如果我將兩個命令都放在 shell 腳本中,那么控件將被第一個命令本身卡住。

也許您可以將這些命令合並為一個命令。 IE,

mongod --config config/mongod.conf && sleep 5 && mongodb/bin/mongo --eval rs.initiate()

sleep 命令假設 5 秒足以讓 mongod 出現並可供 rs.initiate() 使用。 鑒於您正在啟動一個副本集,我假設您沒有數據? 如果是這樣,啟動應該相對較快。 此外,如果您嘗試制作單節點副本集,您可能需要考慮......

rs.initiate (
    {
        _id: "somereplicasetname",
        version: 1,
        members:
        [
            { _id: 0, host: "somehostname:27017" }
        ]
    }
)

...這樣您就不需要進一步配置啟動的副本集。 _id 值(當前顯示為somereplicasetname )應與配置文件mongod.conf中的副本集名稱匹配,而somehostname應解析為當前主機。

順便說一句,我假設您認識到您只需要初始化一個副本集一次,而不是每次啟動 mongod 進程時..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM