![](/img/trans.png)
[英]In a primary-secondary Mongo db set if you accidentally write to a secondary would it reflect in primary it gets routed to primary
[英]Mongo: How to automatically connect to secondary in case of primary failure
我有三個mongod實例的副本,其中一個是主要實例,另外兩個是次要實例。 我將mongo實例連接到主要實例,然后我關閉了mongod主實例,模擬了失敗。
通常,只要我啟動命令,mongo就會生成DBClientCursor :: init call()失敗錯誤。
我的問題是,如果出現這樣的故障,主服務器無法恢復服務,並且肯定會有新主服務器的選舉,有沒有辦法告訴mongo自動搜索並連接到新的主服務器副本集?
可能你的問題是你只是連接到一個節點,那個節點當時是主節點。 您需要做的是在連接時指定復制項是什么以及每個可用節點的地址是什么 - 因此,如果客戶端的主要部分崩潰,您的客戶端可以重新連接到另一個節點。
有關Mongo URI連接字符串格式的文檔說明了這一點:
hostX :可選。 您可以根據需要指定任意數量的主機。 您可以指定多個主機,例如,指定與副本集的連接。
它給出了這個例子:
例
要使用以下mongod主機描述與名為test的副本集的連接:db1.example.net在端口27017和
端口2500上的db2.example.net。
您將使用類似於以下內容的連接字符串:mongodb的://db1.example.net,db2.example.net:2500 / replicaSet =測試
如果需要特定的方式來指定副本集和節點列表,您可能還需要檢查驅動程序的文檔。
這不是問題所在。 副本集已定義良好並已配置。 問題真的很奇怪,我猜它是終端中的一個bug。 我所做的就是關閉終端,打開一個新的終端,它就像一個魅力
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.