簡體   English   中英

mongodb副本集無法訪問

[英]mongodb replica set unreachable

我試圖用3個實例配置一個獨立的mongodb副本集。 我似乎已進入時髦狀態。 我的兩個實例崩潰了,剩下所有輔助節點。 我嘗試遵循以下步驟: http : //docs.mongodb.org/manual/tutorial/reconfigure-replica-set-with-unavailable-members/

我得到了這個錯誤:

 rs0:SECONDARY> rs.reconfig(cfg, {force : true})
 {
    "errmsg" : "exception: need most members up to reconfigure, not ok : obfuscated_hostname:27019",
    "code" : 13144,
    "ok" : 0
 }

當我查看日志時,會看到以下內容:

 Fri Aug  2 20:45:11.895 [initandlisten] options: { config: "/etc/mongodb1.conf",
 dbpath: "/var/lib/mongodb1", logappend: "true", logpath: "/var/log/mongodb/mongodb1.log",
 port: 27018, replSet: "rs0" }
 Fri Aug  2 20:45:11.897 [initandlisten] journal dir=/var/lib/mongodb1/journal
 Fri Aug  2 20:45:11.897 [initandlisten] recover begin
 Fri Aug  2 20:45:11.897 [initandlisten] recover lsn: 0
 Fri Aug  2 20:45:11.897 [initandlisten] recover /var/lib/mongodb1/journal/j._0
 Fri Aug  2 20:45:11.899 [initandlisten] recover cleaning up
 Fri Aug  2 20:45:11.899 [initandlisten] removeJournalFiles
 Fri Aug  2 20:45:11.899 [initandlisten] recover done
 Fri Aug  2 20:45:11.923 [initandlisten] waiting for connections on port 27018
 Fri Aug  2 20:45:11.925 [websvr] admin web console waiting for connections on port     28018
 Fri Aug  2 20:45:11.927 [rsStart] replSet I am hostname_obfuscated:27018
 Fri Aug  2 20:45:11.927 [rsStart] replSet STARTUP2
 Fri Aug  2 20:45:11.929 [rsHealthPoll] replset info hostname_obf:27017 thinks that we  are down
 Fri Aug  2 20:45:11.929 [rsHealthPoll] replSet member hostname_obf:27017 is up
 Fri Aug  2 20:45:11.929 [rsHealthPoll] replSet member hostname_obf:27017 is now in state SECONDARY
 Fri Aug  2 20:45:12.587 [initandlisten] connection accepted from ip_obf:52446 #1 (1 connection now open)
 Fri Aug  2 20:45:12.587 [initandlisten] connection accepted from ip_obf:52447 #2 (2 connections now open)
 Fri Aug  2 20:45:12.588 [conn1] end connection ip_obf:52446 (1 connection now open)
 Fri Aug  2 20:45:12.928 [rsSync] replSet SECONDARY

即使日志顯示啟動並正在運行,我也無法連接到mongo實例。 有什么想法在這里做什么?

您沒有提到正在使用哪個版本的mongodb,但我認為它是2.0以后的版本。

我認為,強制重新配置的問題在於,在重新配置之后,您仍需要為正常運行的副本集設置最少的節點數,即3。但是由於您最初只有3個成員而丟失了2個,因此您不可能將該單個尚存節點轉換為功能正常的副本集。

恢復的唯一選擇是將尚存的節點作為獨立服務器啟動,備份數據庫,然后使用該數據創建一個新的3節點副本集。

是的,如果輔助服務器運行良好,則可以將單個輔助副本設置為主服務器。請執行以下簡單步驟:

步驟1 :連接到成員並檢查當前配置

rs.conf()

步驟2 :將當前配置保存到另一個變量。

x = rs.conf()

步驟3 :選擇要成為主要成員的ID,主機和端口。

x.members = [{“ _id”:1,“主機”:“ localhost.localdomain:27017”}]

步驟4 :強制重新配置新副本集。

rs.reconfig(x,{force:true})

現在,所需成員將被提升為主要成員。

暫無
暫無

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

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