MongoDB副本集配置系列四:节点的关闭顺序
生活随笔
收集整理的這篇文章主要介紹了
MongoDB副本集配置系列四:节点的关闭顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接上一篇博客:http://www.cnblogs.com/xiaoit/p/4522218.html
Primary Secondary Arbiter 1:關閉順序PSA :會報錯 2:關閉順序PAS :可以 3:關閉順序SAP :主節點會變為從節點 4:關閉順序SPA :會報錯 5:關閉順序APS 6:關閉順序ASP :主節點會變為從節點
gechongrepl:PRIMARY> use admin switched to db admin gechongrepl:PRIMARY> db.shutdownServer() assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 at Error (<anonymous>) at doassert (src/mongo/shell/assert.js:11:14) at assert (src/mongo/shell/assert.js:20:5) at DB.shutdownServer (src/mongo/shell/db.js:212:9) at (shell):1:4 2015-05-28T23:48:06.023-0700 E QUERY Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 at Error (<anonymous>) at doassert (src/mongo/shell/assert.js:11:14) at assert (src/mongo/shell/assert.js:20:5) at DB.shutdownServer (src/mongo/shell/db.js:212:9) at (shell):1:4 at src/mongo/shell/assert.js:13
Primary Secondary Arbiter 1:關閉順序PSA :會報錯 2:關閉順序PAS :可以 3:關閉順序SAP :主節點會變為從節點 4:關閉順序SPA :會報錯 5:關閉順序APS 6:關閉順序ASP :主節點會變為從節點
1:關閉順序PSA gechongrepl:PRIMARY> rs.isMaster() {"setName" : "gechongrepl","setVersion" : 13,"ismaster" : true,"secondary" : false,"hosts" : ["192.168.91.133:27017","192.168.91.132:27017","192.168.91.132:27018"],"arbiters" : ["192.168.91.135:27017"],"primary" : "192.168.91.133:27017","me" : "192.168.91.133:27017","electionId" : ObjectId("5568098a6de3d53a2ea91c64"),"maxBsonObjectSize" : 16777216,"maxMessageSizeBytes" : 48000000,"maxWriteBatchSize" : 1000,"localTime" : ISODate("2015-05-29T06:39:36.548Z"),"maxWireVersion" : 3,"minWireVersion" : 0,"ok" : 1 }
P:
gechongrepl:PRIMARY> use admin switched to db admin gechongrepl:PRIMARY> db.shutdownServer()S:
從變為了:gechongrepl:PRIMARY>gechongrepl:PRIMARY> use admin switched to db admin gechongrepl:PRIMARY> db.shutdownServer() assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 at Error (<anonymous>) at doassert (src/mongo/shell/assert.js:11:14) at assert (src/mongo/shell/assert.js:20:5) at DB.shutdownServer (src/mongo/shell/db.js:212:9) at (shell):1:4 2015-05-28T23:48:06.023-0700 E QUERY Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:48:06.022-0700 at Error (<anonymous>) at doassert (src/mongo/shell/assert.js:11:14) at assert (src/mongo/shell/assert.js:20:5) at DB.shutdownServer (src/mongo/shell/db.js:212:9) at (shell):1:4 at src/mongo/shell/assert.js:13
A:
gechongrepl:ARBITER> use admin switched to db admin gechongrepl:ARBITER> db.shutdownServer()
再次關閉S:
S變為了:ggechongrepl:SECONDARY> gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
2:關閉順序PAS : 已經驗證,不報錯。
3:關閉順序SAP
S:
gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
A:
gechongrepl:ARBITER> use admin switched to db admin gechongrepl:ARBITER> db.shutdownServer()
P:
主變為了:gechongrepl:SECONDARY>gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
?
4:關閉順序SPA
S:
gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()P:
gechongrepl:PRIMARY> use admin switched to db admin gechongrepl:PRIMARY> db.shutdownServer() assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:59:19.685-0700 Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:59:19.685-0700at Error (<anonymous>)at doassert (src/mongo/shell/assert.js:11:14)at assert (src/mongo/shell/assert.js:20:5)at DB.shutdownServer (src/mongo/shell/db.js:212:9)at (shell):1:4 2015-05-28T23:59:19.702-0700 E QUERY Error: assert failed : unexpected error: Error: shutdownServer failed: No electable secondaries caught up as of 2015-05-28T23:59:19.685-0700at Error (<anonymous>)at doassert (src/mongo/shell/assert.js:11:14)at assert (src/mongo/shell/assert.js:20:5)at DB.shutdownServer (src/mongo/shell/db.js:212:9)at (shell):1:4 at src/mongo/shell/assert.js:13A:
gechongrepl:ARBITER> use admin switched to db admin gechongrepl:ARBITER> db.shutdownServer()
再次關閉P:
gechongrepl:PRIMARY> use admin switched to db admin 2015-05-29T00:00:44.938-0700 I NETWORK DBClientCursor::init call() failed 2015-05-29T00:00:44.940-0700 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed 2015-05-29T00:00:44.941-0700 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok gechongrepl:SECONDARY> db.shutdownServer()
下面猜測:在關閉最后的Primary節點之前,先關掉仲裁節點即不會報錯。(首先關掉Primary節點,還有其他Secondary不屬于這種情況)
5:關閉順序APS : 不會報錯 6:關閉順序ASP : 不會報錯驗證猜測:
5:關閉順序APS
A:
gechongrepl:ARBITER> use admin switched to db admin gechongrepl:ARBITER> db.shutdownServer()
P:
gechongrepl:PRIMARY> use admin switched to db admin gechongrepl:PRIMARY> db.shutdownServer()
S:因為仲裁節點關閉了。所以Primary節點不會再自動切換
gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
6:關閉順序ASP
A:
gechongrepl:ARBITER> use admin switched to db admin gechongrepl:ARBITER> db.shutdownServer()
S:
gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
P:
gechongrepl:PRIMARY> 2015-05-29T00:12:23.962-0700 I NETWORK DBClientCursor::init call() failed 2015-05-29T00:12:23.965-0700 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed 2015-05-29T00:12:23.966-0700 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok gechongrepl:SECONDARY> gechongrepl:SECONDARY> use admin switched to db admin gechongrepl:SECONDARY> db.shutdownServer()
總結:
1:先關閉從節點、仲裁節點。或者先關閉仲裁節點,最后關閉從節點。則:主節點自動變為從節點
2:先關閉主節點,則從節點自動變為主節點,在仲裁節點關閉之前,新主節點不能關閉
?
初始化的時候主從節點受priority的影響
priority: 是優先級,默認為1,優先級0為被動節點,不能成為活躍節點。優先級不位0則按照有大到小選出活躍節點。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉載于:https://www.cnblogs.com/xiaoit/p/4538608.html
總結
以上是生活随笔為你收集整理的MongoDB副本集配置系列四:节点的关闭顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yii2事务运用举例
- 下一篇: 端口映射上网