生活随笔
收集整理的這篇文章主要介紹了
mongoDB3.4主从复制实现(第一种情况亲测)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一種:
- ?? ?開啟兩個mongodb進程,模擬兩臺機器;
- ?? ?一個為master主服務器,另一個為slave從服務器;
- ?? ?主服務器down機后,從服務器不會成為主服務器。
[python] view plain
copy ??zheng@zheng:~$?cd?./mongodbTest/??mkdir?./t1/db??mkdir?./t2/db??mkdir?./t1/log??mkdir?./t2/log??touch?./t1/log/mongodb.log??touch?./t2/log/mongodb.log????zheng@zheng:~/mongodbTest$?tree??.??├──?t1??│???├──?db??│???└──?log??│???????└──?mongodb.log??└──?t2??????├──?db??????└──?log??????????└──?mongodb.log??????mongod?--dbpath?./t1/db?--logpath?./t1/log/mongodb.log??--port?50001?--logappend?--fork?--master??????mongod?--dbpath?./t2/db?--logpath?./t2/log/mongodb.log??--port?50002?--logappend?--fork?--slave?--source?127.0.0.1:50001??????mongo?--port?50001??????>?use?stu??switched?to?db?stu??>?for(i=1;i<1000;i++){??????db.s.insert({name:'hi'+1}??)}??WriteResult({?"nInserted"?:?1?})??>?db.s.find().count()??999??????mongo?--port?50002??????>?show?dbs??2017-09-14T16:54:56.790+0800?E?QUERY????[main]?Error:?listDatabases?failed:{??????"ok"?:?0,??????"errmsg"?:?"not?master?and?slaveOk=false",??????"code"?:?13435,??????"codeName"?:?"NotMasterNoSlaveOk"??}?:????>?rs.slaveOk()??>?show?dbs??admin??0.000GB??local??0.000GB??stu????0.000GB??>?use?stu??switched?to?db?stu??>?show?collections??s??>?db.s.find().count()??999????>?db.stu.insert({name:'hello'})??WriteResult({?"writeError"?:?{?"code"?:?10107,?"errmsg"?:?"not?master"?}?})??
第二種:副本集
[python] view plain
copy ??zheng@zheng:~$?cd?./mongodbTest/??zheng@zheng:~/mongodbTest$?tree??.??├──?t1??│???├──?db??│???└──?log??│???????└──?mongodb.log??├──?t2??│???├──?db??│???└──?log??│???????└──?mongodb.log??└──?t3??????├──?db??????└──?log??????????└──?mongodb.log??????mongod?--bind_ip?192.168.14.12?--port?50001?--dbpath?./t1/db?--logpath?./t1/log/mongodb.log?--logappend?--fork?--replSet?zheng??mongod?--bind_ip?192.168.14.12?--port?50002?--dbpath?./t2/db?--logpath?./t2/log/mongodb.log?--logappend?--fork?--replSet?zheng??mongod?--bind_ip?192.168.14.12?--port?50003?--dbpath?./t3/db?--logpath?./t3/log/mongodb.log?--logappend?--fork?--replSet?zheng??????mongo?--host?192.168.14.12?--port?50001??????rs.initiate()??????>?rs.initiate()??{??????"info2"?:?"no?configuration?specified.?Using?a?default?configuration?for?the?set",??????"me"?:?"zheng:50001",??????"ok"?:?1??}??zheng:SECONDARY>???????rs.status()??
[python] view plain
copy ??zheng:PRIMARY>??????rs.add('192.168.14.12:50002')??rs.add('192.168.14.12:50003')??
[python] view plain
copy ??
[python] view plain
copy ??zheng:PRIMARY>?db??test??zheng:PRIMARY>?for(i=0;i<=10;i++){db.t.insert({name:'name'+i})}??WriteResult({?"nInserted"?:?1?})??zheng:PRIMARY>?db.t.find().count()??11????????mongo?--host?192.168.14.12?--port?50002??mongo?--host?192.168.14.12?--port?50003??????zheng:SECONDARY>?rs.slaveOk()??zheng:SECONDARY>?db.t.find()??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e89"),?"name"?:?"name0"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8a"),?"name"?:?"name1"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8b"),?"name"?:?"name2"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8d"),?"name"?:?"name4"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8c"),?"name"?:?"name3"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8e"),?"name"?:?"name5"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e8f"),?"name"?:?"name6"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e90"),?"name"?:?"name7"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e91"),?"name"?:?"name8"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e92"),?"name"?:?"name9"?}??{?"_id"?:?ObjectId("59ba7f2060170e82e7b65e93"),?"name"?:?"name10"}??????rs.remove('192.168.14.12:50002')??
#注意
關閉主服務器后,再重新啟動,會發現原來的從服務器變為了從服務器,新啟動的服務器(原來的從服務器)變為了從服務器
第三種:
- 可設置優先級,優先級最高的就先為主服務器;
- 主服務器down機后,優先級高的為新的主服務器。
[python] view plain
copy ??和上面一樣......??????mongo?--host?192.168.14.12?--port?50001??????use?admin??db.runCommand({"replSetInitiate":{"_id":"zheng","members":[{"_id":1,"host":"192.168.14.12:50001","priority":3},{"_id":2,"host":"192.168.14.12:50002","priority":2},{"_id":3,"host":"192.168.14.12:50003","priority":1}]}})??????zheng:OTHER>?rs.status()??{??????"set"?:?"zheng",??????"date"?:?ISODate("2017-09-14T13:43:58.663Z"),??????"myState"?:?1,??????"term"?:?NumberLong(1),??????"heartbeatIntervalMillis"?:?NumberLong(2000),??????"optimes"?:?{??????????"lastCommittedOpTime"?:?{??????????????"ts"?:?Timestamp(1505396636,?2),??????????????"t"?:?NumberLong(1)??????????},??????????"appliedOpTime"?:?{??????????????"ts"?:?Timestamp(1505396636,?2),??????????????"t"?:?NumberLong(1)??????????},??????????"durableOpTime"?:?{??????????????"ts"?:?Timestamp(1505396636,?2),??????????????"t"?:?NumberLong(1)??????????}??????},??????"members"?:?[??????????{??????????????"_id"?:?1,??????????????"name"?:?"192.168.14.12:50001",??????????????"health"?:?1,??????????????"state"?:?1,??????????????"stateStr"?:?"PRIMARY",??????????????"uptime"?:?347,??????????????"optime"?:?{??????????????????"ts"?:?Timestamp(1505396636,?2),??????????????????"t"?:?NumberLong(1)??????????????},??????????????"optimeDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"infoMessage"?:?"could?not?find?member?to?sync?from",??????????????"electionTime"?:?Timestamp(1505396636,?1),??????????????"electionDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"configVersion"?:?1,??????????????"self"?:?true??????????},??????????{??????????????"_id"?:?2,??????????????"name"?:?"192.168.14.12:50002",??????????????"health"?:?1,??????????????"state"?:?2,??????????????"stateStr"?:?"SECONDARY",??????????????"uptime"?:?12,??????????????"optime"?:?{??????????????????"ts"?:?Timestamp(1505396636,?2),??????????????????"t"?:?NumberLong(1)??????????????},??????????????"optimeDurable"?:?{??????????????????"ts"?:?Timestamp(1505396636,?2),??????????????????"t"?:?NumberLong(1)??????????????},??????????????"optimeDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"optimeDurableDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"lastHeartbeat"?:?ISODate("2017-09-14T13:43:58.317Z"),??????????????"lastHeartbeatRecv"?:?ISODate("2017-09-14T13:43:58.153Z"),??????????????"pingMs"?:?NumberLong(0),??????????????"syncingTo"?:?"192.168.14.12:50001",??????????????"configVersion"?:?1??????????},??????????{??????????????"_id"?:?3,??????????????"name"?:?"192.168.14.12:50003",??????????????"health"?:?1,??????????????"state"?:?2,??????????????"stateStr"?:?"SECONDARY",??????????????"uptime"?:?12,??????????????"optime"?:?{??????????????????"ts"?:?Timestamp(1505396636,?2),??????????????????"t"?:?NumberLong(1)??????????????},??????????????"optimeDurable"?:?{??????????????????"ts"?:?Timestamp(1505396636,?2),??????????????????"t"?:?NumberLong(1)??????????????},??????????????"optimeDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"optimeDurableDate"?:?ISODate("2017-09-14T13:43:56Z"),??????????????"lastHeartbeat"?:?ISODate("2017-09-14T13:43:58.317Z"),??????????????"lastHeartbeatRecv"?:?ISODate("2017-09-14T13:43:58.152Z"),??????????????"pingMs"?:?NumberLong(0),??????????????"syncingTo"?:?"192.168.14.12:50001",??????????????"configVersion"?:?1??????????}??????],??????"ok"?:?1??}?
來源:http://blog.csdn.net/zheng_lan_fang/article/details/77986007
總結
以上是生活随笔為你收集整理的mongoDB3.4主从复制实现(第一种情况亲测)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。