中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB設置 Replication Sets

發布時間:2020-02-25 10:28:10 來源:網絡 閱讀:1687 作者:孤鴻子 欄目:MongoDB數據庫

    MongoDB 高可用可用分兩種 :


Master-Slave 主從復制 :只需要在某一個服務啟動時加上–master 參數, 而另一個服務加上–slave 與–source 參數, 即可實現同步。

MongoDB的最新版本已不再推薦此方案。


Replica Sets 復制集 :MongoDB 在 1.6 版本對開發了新功能 replica set,這比之前的 replication 功能要強大一 些,增加了故障自動切換

和自動修復成員節點,各個 DB 之間數據完全一致,大大降低了維 護成功。auto shard 已經明確說明不支持 replication paris,建議使用 

replica set,replica set 故障切換完全自動。


Replica Sets 的結構非常類似一個集群 ,其中一個節點如果出現故障, 其它節點馬上會將業務 接過來而無須停機操作。

        MongoDB設置 Replication Sets


                       192.168.110.131(node1)

                       192.168.110.132(node2)

                       192.168.110.133(node3)

    官方文檔:

     http://docs.mongoing.com/manual-zh/

    

    部署復制集:

     http://docs.mongoing.com/manual-zh/tutorial/deploy-replica-set.html


一、MongoDB安裝

    

    [root@node1 ~]# vim /etc/yum.repos.d/Mongodb.repo


    [mongodb-org-3.4]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc 


    [root@node1 ~]# yum install -y mongodb-org


    [root@node1 ~]# service mongod start

Starting mongod:                                           [  OK  ]

    

    [root@node1 ~]# ps aux|grep mong

mongod    1361  5.7 14.8 351180 35104 ?        Sl   01:26   0:01 /usr/bin/mongod -f /etc/mongod.conf


更改數據存放目錄:


    [root@node1 ~]# mkdir -p /mongodb/data

[root@node1 ~]# chown -R mongod:mongod /mongodb/

[root@node1 ~]# ll /mongodb/

total 4

drwxr-xr-x 2 mongod mongod 4096 May 18 02:04 data


    

    [root@node1 ~]# grep -v "^#" /etc/mongod.conf |grep -v "^$"

systemLog:

 destination: file

 logAppend: true

 path: /var/log/mongodb/mongod.log

storage:

 dbPath: /mongodb/data

 journal:

   enabled: true

processManagement:

 fork: true  # fork and run in background

 pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile

net:

 port: 27017

 bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.


    [root@node1 ~]# service mongod start

Starting mongod:                                           [  OK  ]

    

    node2,node2與上面一樣


二、配置 Replication Sets

    

    介紹一下涉及到的參數


--oplogSize 日志操作文件的大小

--dbpath   數據文件路徑


--logpath  日志文件路徑


--port        端口號,默認是27017.我這里使用的也是這個端口號.


--replSet   復制集的名字,一個replica sets中的每個節點的這個參數都要用一個復制集名字,這里是test.


--replSet test/  這個后面跟的是其他standard節點的ip和端口


--maxConns   最大連接數


--fork       后臺運行


--logappend   日志文件循環使用,如果日志文件已滿,那么新日志覆蓋最久日志。


--keyFile       標識同一集群的認證私鑰


其中在啟動節點時一定要加上oplogSize 的參數 為其設置大小,不然在64位操作系統上的mongodb,oplogs都相當大-可能是5%的磁盤空間。

要根據情況設置個合理的值。

    

    v3.4.4上的參數:


    [root@node1 ~]# vim /etc/mongod.conf 


replication:

    oplogSizeMB: 1024

    replSetName: rs0

    


    使用Keyfile存取控制部署復制集:


    openssl rand -base64 756 > <path-to-keyfile>

chmod 400 <path-to-keyfile>



Configuration File


If using a configuration file, set the security.keyFile option to the keyfile’s path, and the replication.replSetName option to the replica set name:


security:

 keyFile: <path-to-keyfile>

replication:

 replSetName: <replicaSetName>


Command Line


If using the command line option, start the mongod with the --keyFile and --replSet parameters:


mongod --keyFile <path-to-keyfile> --replSet <replicaSetName>

    

    配置帶密鑰文件的 Replication Sets:

    

    [root@node1 ~]# openssl rand -base64 756 > /mongodb/mongokey

    [root@node1 ~]# cat /mongodb/mongokey 

gxpcgjyFj2qE8b9TB/0XbdRVYH9VDb55NY03AHwxCFU58MUjJMeez844i1gaUo/t

.....

.....

  

    [root@node1 ~]# chmod 400 /mongodb/mongokey 

[root@node1 ~]# chown mongod:mongod /mongodb/mongokey 

[root@node1 ~]# ll /mongodb/

total 8

drwxr-xr-x 4 mongod mongod 4096 May 19 18:39 data

-r-------- 1 mongod mongod 1024 May 19 18:29 mongokey



    [root@node1 ~]# vim /etc/mongod.conf

    #security:

security:

  keyFile: /mongodb/mongokey


#operationProfiling:


#replication:

replication:

  oplogSizeMB: 1024

  replSetName: rs0

    

    [root@node1 ~]# service mongod restart

Stopping mongod:                                           [  OK  ]

Starting mongod:                                           [  OK  ]

    

    [root@node1 ~]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 27017  -j ACCEPT

    

    復制hosts文件:

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/hosts root@node2.pancou.com:/mongodb/

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/hosts root@node3.pancou.com:/mongodb/

    復制密鑰文件:

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /mongodb/mongokey root@node3.pancou.com:/mongodb/

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /mongodb/mongokey root@node3.pancou.com:/mongodb/

    

    復制配置文件:

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/mongod.conf root@node2.pancou.com:/etc/

    [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/mongod.conf root@node3.pancou.com:/etc/


    注意:雙方都要按照rsync和openssh-clients


    [root@node1 ~]# mongo

    > help

db.help()                    help on db methods

db.mycoll.help()             help on collection methods

sh.help()                    sharding helpers

rs.help()                    replica set helpers

    .....


    > rs.help()

    rs.status()                                { replSetGetStatus : 1 } checks repl set status

rs.initiate()                              { replSetInitiate : null } initiates set with default settings

rs.initiate(cfg)                           { replSetInitiate : cfg } initiates set with configuration cfg

rs.conf()                                  get the current configuration object from local.system.replset

    .....


    > rs.status()

{

"info" : "run rs.initiate(...) if not yet done for the set",

"ok" : 0,

"errmsg" : "no replset config has been received",

"code" : 94,

"codeName" : "NotYetInitialized"

    }


    > rs.initiate()

{

"info2" : "no configuration specified. Using a default configuration for the set",

"me" : "node1.pancou.com:27017",

"ok" : 1

}


    rs0:OTHER> 

rs0:PRIMARY> rs.status()

{

"set" : "rs0",

"date" : ISODate("2017-05-18T17:00:49.868Z"),

"myState" : 1,

"term" : NumberLong(1),

"heartbeatIntervalMillis" : NumberLong(2000),

"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1495126845, 1),

"t" : NumberLong(1)

},

"appliedOpTime" : {

"ts" : Timestamp(1495126845, 1),

"t" : NumberLong(1)

},

"durableOpTime" : {

"ts" : Timestamp(1495126845, 1),

"t" : NumberLong(1)

}

},

"members" : [

{

"_id" : 0,

"name" : "node1.pancou.com:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 1239,

"optime" : {

"ts" : Timestamp(1495126845, 1),

"t" : NumberLong(1)

},

"optimeDate" : ISODate("2017-05-18T17:00:45Z"),

"infoMessage" : "could not find member to sync from",

"electionTime" : Timestamp(1495126824, 2),

"electionDate" : ISODate("2017-05-18T17:00:24Z"),

"configVersion" : 1,

"self" : true

}

],

"ok" : 1

}


    rs0:PRIMARY> rs.add("node2.pancou.com")

{ "ok" : 1 }

rs0:PRIMARY> rs.add("node3.pancou.com")

{ "ok" : 1 }

    rs0:PRIMARY> rs.status()

{

"set" : "rs0",

"date" : ISODate("2017-05-18T17:08:47.724Z"),

"myState" : 1,

"term" : NumberLong(1),

"heartbeatIntervalMillis" : NumberLong(2000),

"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"appliedOpTime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"durableOpTime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

}

},

"members" : [

{

"_id" : 0,

"name" : "node1.pancou.com:27017",

"health" : 1,              //表明狀態正常

"state" : 1,               //1表示是PRIMARY,2表示是slave

"stateStr" : "PRIMARY",    //表示此機器是主庫

"uptime" : 1717,

"optime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"optimeDate" : ISODate("2017-05-18T17:08:45Z"),

"electionTime" : Timestamp(1495126824, 2),

"electionDate" : ISODate("2017-05-18T17:00:24Z"),

"configVersion" : 3,

"self" : true

},

{

"_id" : 1,

"name" : "node2.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 64,

"optime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"optimeDurable" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"optimeDate" : ISODate("2017-05-18T17:08:45Z"),

"optimeDurableDate" : ISODate("2017-05-18T17:08:45Z"),

"lastHeartbeat" : ISODate("2017-05-18T17:08:46.106Z"),

"lastHeartbeatRecv" : ISODate("2017-05-18T17:08:47.141Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node1.pancou.com:27017",

"configVersion" : 3

},

{

"_id" : 2,

"name" : "node3.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 55,

"optime" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"optimeDurable" : {

"ts" : Timestamp(1495127325, 1),

"t" : NumberLong(1)

},

"optimeDate" : ISODate("2017-05-18T17:08:45Z"),

"optimeDurableDate" : ISODate("2017-05-18T17:08:45Z"),

"lastHeartbeat" : ISODate("2017-05-18T17:08:46.195Z"),

"lastHeartbeatRecv" : ISODate("2017-05-18T17:08:46.924Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node2.pancou.com:27017",

"configVersion" : 3

}

],

"ok" : 1

}

    

    rs0:PRIMARY> db.isMaster()

{

"hosts" : [

"node1.pancou.com:27017",

"node2.pancou.com:27017",

"node3.pancou.com:27017"

],

"setName" : "rs0",

"setVersion" : 3,

"ismaster" : true,

"secondary" : false,

"primary" : "node1.pancou.com:27017",

"me" : "node1.pancou.com:27017",

"electionId" : ObjectId("7fffffff0000000000000001"),

"lastWrite" : {

"opTime" : {

"ts" : Timestamp(1495127705, 1),

"t" : NumberLong(1)

},

"lastWriteDate" : ISODate("2017-05-18T17:15:05Z")

},

"maxBsonObjectSize" : 16777216,

"maxMessageSizeBytes" : 48000000,

"maxWriteBatchSize" : 1000,

"localTime" : ISODate("2017-05-18T17:15:11.146Z"),

"maxWireVersion" : 5,

"minWireVersion" : 0,

"readOnly" : false,

"ok" : 1

}

    

    rs0:PRIMARY> use testdb

    rs0:PRIMARY> show collections

testcoll

rs0:PRIMARY> db.testcoll.find()

{ "_id" : ObjectId("591dd9f965cc255a5373aefa"), "name" : "tom", "age" : 25 }



    到從庫上查看:


    node2:


    rs0:SECONDARY> rs.slaveOk()

rs0:SECONDARY> show dbs

admin   0.000GB

local   0.000GB

testdb  0.000GB

rs0:SECONDARY> use testdb

switched to db testdb

rs0:SECONDARY> show collections

testcoll

rs0:SECONDARY> db.testcoll.find()

{ "_id" : ObjectId("591dd9f965cc255a5373aefa"), "name" : "tom", "age" : 25 }

rs0:SECONDARY> 

    

    node3:


    rs0:SECONDARY> rs.slaveOk()

rs0:SECONDARY> show dbs

admin   0.000GB

local   0.000GB

testdb  0.000GB

rs0:SECONDARY> use testdb

switched to db testdb

rs0:SECONDARY> show collections

testcoll

rs0:SECONDARY> db.testcoll.find()

{ "_id" : ObjectId("591dd9f965cc255a5373aefa"), "name" : "tom", "age" : 25 }

rs0:SECONDARY> 



    主從操作日志


    rs0:PRIMARY> use local

switched to db local

rs0:PRIMARY> show collections

me

oplog.rs

replset.election

replset.minvalid

startup_log

system.replset

rs0:PRIMARY> db.oplog.rs.find()

{ "ts" : Timestamp(1495126824, 1), "h" : NumberLong("3056083863196084673"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "initiating set" } }

{ "ts" : Timestamp(1495126825, 1), "t" : NumberLong(1), "h" : NumberLong("7195178065440751511"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "new primary" } }

{ "ts" : Timestamp(1495126835, 1), "t" : NumberLong(1), "h" : NumberLong("5723995478292318850"), "v" : 2, "op" : "n", "ns" : "", "o" : { "msg" : "periodic noop" } }

{ "ts" : Timestamp(1495126845, 1), "t" : NumberLong(1), "h" : NumberLong("-3772304067699003381"), "v" : 2, "op" : "n", "ns" : "", "o"


三、查看配置信息  


    rs0:PRIMARY> db.printReplicationInfo()

configured oplog size:   1024MB

log length start to end: 2541secs (0.71hrs)

oplog first event time:  Fri May 19 2017 01:00:24 GMT+0800 (CST)

oplog last event time:   Fri May 19 2017 01:42:45 GMT+0800 (CST)

now:                     Fri May 19 2017 01:42:48 GMT+0800 (CST)

rs0:PRIMARY> 


db.oplog.rs.find():查看復制集產生的日志

db.printReplicationInfo():查看操作日志的一些基本信息,如日志大小、日志啟用時間。

    db.printSlaveReplicationInfo():查看所有slave延遲情況。


rs0:PRIMARY> db.printSlaveReplicationInfo()

source: node2.pancou.com:27017

syncedTo: Fri May 19 2017 01:47:15 GMT+0800 (CST)

0 secs (0 hrs) behind the primary 

source: node3.pancou.com:27017

syncedTo: Fri May 19 2017 01:47:15 GMT+0800 (CST)

0 secs (0 hrs) behind the primary 

    

    db.system.replset.find():查看復制集


    配置信息:


    rs0:PRIMARY> db.system.replset.find()

{ "_id" : "rs0", "version" : 3, "protocolVersion" : NumberLong(1), "members" : [ { "_id" : 0, "host" : "node1.pancou.com:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : {  }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 1, "host" : "node2.pancou.com:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : {  }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 2, "host" : "node3.pancou.com:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : {  }, "slaveDelay" : NumberLong(0), "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatIntervalMillis" : 2000, "heartbeatTimeoutSecs" : 10, "electionTimeoutMillis" : 10000, "catchUpTimeoutMillis" : 2000, "getLastErrorModes" : {  }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 }, "replicaSetId" : ObjectId("591dd3284fc6957e660dc933") } }

 

   rs0:PRIMARY> db.system.replset.find().forEach(printjson)  這種方式更直觀



四、主從切換:

    

    1、把node3冰凍30秒

    

    rs0:SECONDARY> rs.freeze(30)

    { "ok" : 1 }


    2、把node1 PRIMARY降級、

    rs0:PRIMARY> rs.stepDown(30)

2017-05-19T02:09:27.945+0800 E QUERY    [thread1] Error: error doing query: failed: network error while attempting to run command 'replSetStepDown' on host '127.0.0.1:27017'  :

DB.prototype.runCommand@src/mongo/shell/db.js:132:1

DB.prototype.adminCommand@src/mongo/shell/db.js:150:16

rs.stepDown@src/mongo/shell/utils.js:1261:12

@(shell):1:1

2017-05-19T02:09:27.947+0800 I NETWORK  [thread1] trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed

2017-05-19T02:09:27.949+0800 I NETWORK  [thread1] reconnect 127.0.0.1:27017 (127.0.0.1) ok

    

    30秒后就變成從了

rs0:SECONDARY> rs.status()

{

"set" : "rs0",

"date" : ISODate("2017-05-18T18:12:09.732Z"),

"myState" : 2,

"term" : NumberLong(2),

"syncingTo" : "node2.pancou.com:27017",

"heartbeatIntervalMillis" : NumberLong(2000),

"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1495131128, 1),

"t" : NumberLong(2)

},

"appliedOpTime" : {

"ts" : Timestamp(1495131128, 1),

"t" : NumberLong(2)

},

"durableOpTime" : {

"ts" : Timestamp(1495131128, 1),

"t" : NumberLong(2)

}

},

"members" : [

{

"_id" : 0,

"name" : "node1.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 5519,

"optime" : {

"ts" : Timestamp(1495131128, 1),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2017-05-18T18:12:08Z"),

"syncingTo" : "node2.pancou.com:27017",

"configVersion" : 3,

"self" : true

},

{

"_id" : 1,

"name" : "node2.pancou.com:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 3866,

"optime" : {

"ts" : Timestamp(1495131118, 1),

"t" : NumberLong(2)

},

"optimeDurable" : {

"ts" : Timestamp(1495131118, 1),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2017-05-18T18:11:58Z"),

"optimeDurableDate" : ISODate("2017-05-18T18:11:58Z"),

"lastHeartbeat" : ISODate("2017-05-18T18:12:08.333Z"),

"lastHeartbeatRecv" : ISODate("2017-05-18T18:12:08.196Z"),

"pingMs" : NumberLong(0),

"electionTime" : Timestamp(1495130977, 1),

"electionDate" : ISODate("2017-05-18T18:09:37Z"),

"configVersion" : 3

},

{

"_id" : 2,

"name" : "node3.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 3857,

"optime" : {

"ts" : Timestamp(1495131118, 1),

"t" : NumberLong(2)

},

"optimeDurable" : {

"ts" : Timestamp(1495131118, 1),

"t" : NumberLong(2)

},

"optimeDate" : ISODate("2017-05-18T18:11:58Z"),

"optimeDurableDate" : ISODate("2017-05-18T18:11:58Z"),

"lastHeartbeat" : ISODate("2017-05-18T18:12:08.486Z"),

"lastHeartbeatRecv" : ISODate("2017-05-18T18:12:08.116Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node2.pancou.com:27017",

"configVersion" : 3

}

],

"ok" : 1

}

rs0:SECONDARY> 



五、增減節點

    

    1、增加節點


       通過oplog增加節點,這種方式使數據的同步完全依賴于oplog,即oplog中有多少操作日志,這些操作日志就完全在新添加的節點中執行一遍,以完成同步。


       在上面有一個3節點的復制集基礎上,現在想配置并啟動一個新節點,將其加入現在復制集環境中。

       


       [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/hosts root@node2.pancou.com:/etc/

       

       [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /mongodb/mongokey root@node4.pancou.com:/mongodb/


       [root@node1 ~]# rsync -avH --progress '-e ssh -p 22' /etc/mongod.conf root@node4.pancou.com:/etc/


       [root@node4 ~]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 27017  -j ACCEPT

       

       在主上添加新節點:


       rs0:PRIMARY> rs.add("node4.pancou.com")

{ "ok" : 1 }

       

       rs0:PRIMARY> rs.status()

{

"set" : "rs0",

"date" : ISODate("2017-05-19T12:12:57.697Z"),

"myState" : 1,

"term" : NumberLong(8),

"heartbeatIntervalMillis" : NumberLong(2000),

"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"appliedOpTime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"durableOpTime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

}

},

"members" : [

{

"_id" : 0,

"name" : "node1.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 159,

"optime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDurable" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDate" : ISODate("2017-05-19T12:12:51Z"),

"optimeDurableDate" : ISODate("2017-05-19T12:12:51Z"),

"lastHeartbeat" : ISODate("2017-05-19T12:12:56.111Z"),

"lastHeartbeatRecv" : ISODate("2017-05-19T12:12:57.101Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node3.pancou.com:27017",

"configVersion" : 4

},

{

"_id" : 1,

"name" : "node2.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 189,

"optime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDurable" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDate" : ISODate("2017-05-19T12:12:51Z"),

"optimeDurableDate" : ISODate("2017-05-19T12:12:51Z"),

"lastHeartbeat" : ISODate("2017-05-19T12:12:56.111Z"),

"lastHeartbeatRecv" : ISODate("2017-05-19T12:12:57.103Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "node3.pancou.com:27017",

"configVersion" : 4

},

{

"_id" : 2,

"name" : "node3.pancou.com:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 191,

"optime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDate" : ISODate("2017-05-19T12:12:51Z"),

"electionTime" : Timestamp(1495195800, 1),

"electionDate" : ISODate("2017-05-19T12:10:00Z"),

"configVersion" : 4,

"self" : true

},

{

"_id" : 3,

"name" : "node4.pancou.com:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 71,

"optime" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDurable" : {

"ts" : Timestamp(1495195971, 1),

"t" : NumberLong(8)

},

"optimeDate" : ISODate("2017-05-19T12:12:51Z"),

"optimeDurableDate" : ISODate("2017-05-19T12:12:51Z"),

"lastHeartbeat" : ISODate("2017-05-19T12:12:56.122Z"),

"lastHeartbeatRecv" : ISODate("2017-05-19T12:12:56.821Z"),

"pingMs" : NumberLong(1),

"syncingTo" : "node3.pancou.com:27017",

"configVersion" : 4

}

],

"ok" : 1

}



查看狀態:


rs0:SECONDARY> rs.slaveOk()

rs0:SECONDARY> show dbs

admin   0.000GB

local   0.000GB

testdb  0.000GB

rs0:SECONDARY> use testdb

switched to db testdb

rs0:SECONDARY> show collections

testcoll

rs0:SECONDARY> db.testcoll.find()

{ "_id" : ObjectId("591dd9f965cc255a5373aefa"), "name" : "tom", "age" : 25 }

rs0:SECONDARY> 

rs0:SECONDARY> db.isMaster()

{

"hosts" : [

"node1.pancou.com:27017",

"node2.pancou.com:27017",

"node3.pancou.com:27017",

"node4.pancou.com:27017"

],

"setName" : "rs0",

"setVersion" : 4,

"ismaster" : false,

"secondary" : true,

"primary" : "node3.pancou.com:27017",

"me" : "node4.pancou.com:27017",

"lastWrite" : {

"opTime" : {

"ts" : Timestamp(1495196261, 1),

"t" : NumberLong(8)

},

"lastWriteDate" : ISODate("2017-05-19T12:17:41Z")

},

"maxBsonObjectSize" : 16777216,

"maxMessageSizeBytes" : 48000000,

"maxWriteBatchSize" : 1000,

"localTime" : ISODate("2017-05-19T12:17:44.104Z"),

"maxWireVersion" : 5,

"minWireVersion" : 0,

"readOnly" : false,

"ok" : 1

}

rs0:SECONDARY> 


     2、減少節點


        rs0:PRIMARY> rs.remove("node4.pancou.com:27017")

{ "ok" : 1 }

        

        rs0:PRIMARY> db.isMaster()

{

"hosts" : [

"node1.pancou.com:27017",

"node2.pancou.com:27017",

"node3.pancou.com:27017"

],

"setName" : "rs0",

"setVersion" : 5,

"ismaster" : true,

"secondary" : false,

"primary" : "node3.pancou.com:27017",

"me" : "node3.pancou.com:27017",

"electionId" : ObjectId("7fffffff0000000000000008"),

"lastWrite" : {

"opTime" : {

"ts" : Timestamp(1495196531, 1),

"t" : NumberLong(8)

},

"lastWriteDate" : ISODate("2017-05-19T12:22:11Z")

},

"maxBsonObjectSize" : 16777216,

"maxMessageSizeBytes" : 48000000,

"maxWriteBatchSize" : 1000,

"localTime" : ISODate("2017-05-19T12:22:19.874Z"),

"maxWireVersion" : 5,

"minWireVersion" : 0,

"readOnly" : false,

"ok" : 1

}

rs0:PRIMARY> 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

七台河市| 长子县| 额尔古纳市| 新河县| 铜鼓县| 仁怀市| 苍梧县| 仙游县| 威宁| 浦城县| 禄劝| 南陵县| 吴川市| 汾阳市| 沂南县| 紫金县| 湄潭县| 汾西县| 凌海市| 图木舒克市| 固始县| 沽源县| 饶平县| 山东| 岳池县| 平昌县| 莎车县| 吕梁市| 正镶白旗| 泗洪县| 郸城县| 乌兰察布市| 洛浦县| 郯城县| 长治县| 临澧县| 常熟市| 镇巴县| 潜山县| 南乐县| 加查县|