[英]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.