Mongodb

如何為連接器設置 MongoDB 副本集

  • August 30, 2021

我想讓 MongoDB 和 Solr 保持同步。mongodb-connector (python) 是我想要使用的工具。現在需要 mongodb 中的副本集(請參閱自述文件),但我不想(並且可以)設置集/實例。

那麼我可以設置一個只有主節點而沒有輔助節點的副本集嗎?意思是:只有一個實例的副本集設置?這是怎麼回事

同時我找到了一個解決方案

  1. 在配置文件中添加以下內容:
  • replSet=rs0(名稱是變數)(必要的,因為使用 replSet 選項啟動 mongod 不起作用)
  • oplogSize=[MemSize]
  1. 啟動 mongodb-instance:
  • sudo /etc/init.d/mongod start
  • mongo
  1. 設置副本集:
  • 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"}]})

引用自:https://dba.stackexchange.com/questions/53704