如何為連接器設置 MongoDB 副本集
我想讓 MongoDB 和 Solr 保持同步。mongodb-connector (python) 是我想要使用的工具。現在需要 mongodb 中的副本集(請參閱自述文件),但我不想(並且可以)設置集/實例。
那麼我可以設置一個只有主節點而沒有輔助節點的副本集嗎?意思是:只有一個實例的副本集設置?這是怎麼回事
同時我找到了一個解決方案:
- 在配置文件中添加以下內容:
replSet=rs0
(名稱是變數)(必要的,因為使用 replSet 選項啟動 mongod 不起作用)oplogSize=[MemSize]
- 啟動 mongodb-instance:
sudo /etc/init.d/mongod start
mongo
- 設置副本集:
rs.initiate({"_id" : "rs0","version" : 1,"members" : [{"_id" : 0,"host" : "localhost:27017"}]})
- 檢查與
rs.status()
在 mongodb 3.2 中,“replSet”更改為“replSetName” https://docs.mongodb.com/v3.2/tutorial/upgrade-config-servers-to-replica-set/
mongod
您可以通過使用replSet參數/配置選項啟動單個節點副本集,這就是所需的全部。它接受一個 name 參數,然後將其用作相關副本集的名稱。完成此操作後,您只需在連接到節點時從 shell 執行rs.initiate()(這只需要一次)。這在這裡詳細描述:
http://docs.mongodb.org/manual/tutorial/convert-standalone-to-replica-set/
要僅使用單個節點,請不要遵循“擴展集合”說明。
以下是我在 Mac 上使用 Brew 對 Elasticsearch 進行的類似過程中所做的:
注意:隨著新守護程序的啟動,切換到新終端
ElasticSearch(在“brew install elasticsearch”之後):
$ elasticsearch #start es daemon on port 9200
MongoDB 就在“數據”文件夾之外
$$ or other database location $$(在“brew install mongodb”和“pip install mongo-connector”和“pip install elastic2-doc-manager”之後):
$ mongod --dbpath data --replSet "rs0" #create replica set on port 27017 $ mongo #initiate replica set > rs.initiate({"_id" : "rs0","version" : 1,"members" : [{"_id" : 0,"host" : "localhost:27017"}]})