windows下 MongoDB 復制集搭建


  本文參考地址:https://docs.mongodb.com/manual/replication/

一、復制集介紹

  主要目的:MongoDB可以通過在不同數據庫服務器上提供多個數據副本來提供冗余並提高數據可用性,進行讀寫分離以及災難備份。

  MongDB復制集由一組MongDB實例組成,包含一個Primary節點及多個Secondary節點。所有數據寫入Primary節點,Secondary從Primary同步寫入的數據,用來對數據進行冗余備份,並提供讀取作用。

  以下是一個最簡單的復制集模型圖,由一個主節點,一個從節點,一個仲裁器組成。

   

  

 

    

     仲裁器不維護數據,主要用來通過響應其他成員的心跳和選舉請求來維護復制集中的主節點。

 

二、復制集部署

  1、MongoDB安裝。

    首先從MongoDB官網(https://www.mongodb.com/download-center/community)下載對應安裝文件MSI或者ZIP,MSI可以直接按照提示進行安裝。ZIP包的話需要手動配置MongoDB存儲數據、日志的文件路徑,以及配置服務。

 

  2、安裝完成修改配置文件。   

 1 # mongod.conf
 2 
 3 # for documentation of all options, see:
 4 #   http://docs.mongodb.org/manual/reference/configuration-options/
 5 
 6 # Where and how to store data.
 7 storage:
 8   dbPath: E:\mongoDB\mongoDB-27020\data
 9   journal:
10     enabled: true
11 #  engine:
12 #  mmapv1:
13   wiredTiger:
14     engineConfig:
15       cacheSizeGB: 1
16 
17 # where to write logging data.
18 systemLog:
19   destination: file
20   logAppend: true
21   path:  E:\mongoDB\mongoDB-27020\log\mongod.log
22 # network interfaces
23 net:
24   port: 27020
25   bindIp: 127.0.0.1
26 #operationProfiling:
27 #復制集名稱
28 replication:
29   replSetName: rs0    

  

  3、安裝MongDB服務     

"C:\Program Files\MongoDB\Server\4.0\bin\mongod.exe" --config "E:\mongoDB\mongoDB-27018\mongod.cfg"  --serviceName "MongoDB-27018" --serviceDisplayName "MongoDB Server 27018" --install

 

  4、啟動MongDB服務

  

 

  5、配置復制集

rs.initiate();//初始化副本集
rs.add("127.0.0.1:27018");//添加成員
rs.add({"host":"127.0.0.1:27019","arbiterOnly":true});//添加仲裁節點

 

  6、查看副本集狀態

rs.status();//查看副本集狀態
/* 1 */
{
    "set" : "rs0",
    "date" : ISODate("2019-09-19T19:59:10.801+08:00"),
    "myState" : 2,
    "term" : NumberLong(8),
    "syncingTo" : "127.0.0.1:27018",
    "syncSourceHost" : "127.0.0.1:27018",
    "syncSourceId" : 1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1568894340, 1),
            "t" : NumberLong(8)
        },
        "readConcernMajorityOpTime" : {
            "ts" : Timestamp(1568894340, 1),
            "t" : NumberLong(8)
        },
        "appliedOpTime" : {
            "ts" : Timestamp(1568894340, 1),
            "t" : NumberLong(8)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1568894340, 1),
            "t" : NumberLong(8)
        }
    },
    "lastStableCheckpointTimestamp" : Timestamp(1568894340, 1),
    "members" : [ 
        {
            "_id" : 0,
            "name" : "127.0.0.1:27017",
            "health" : 1.0,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 669,
            "optime" : {
                "ts" : Timestamp(1568894340, 1),
                "t" : NumberLong(8)
            },
            "optimeDate" : ISODate("2019-09-19T19:59:00.000+08:00"),
            "syncingTo" : "127.0.0.1:27018",
            "syncSourceHost" : "127.0.0.1:27018",
            "syncSourceId" : 1,
            "infoMessage" : "",
            "configVersion" : 5,
            "self" : true,
            "lastHeartbeatMessage" : ""
        }, 
        {
            "_id" : 1,
            "name" : "127.0.0.1:27018",
            "health" : 1.0,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 664,
            "optime" : {
                "ts" : Timestamp(1568894340, 1),
                "t" : NumberLong(8)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1568894340, 1),
                "t" : NumberLong(8)
            },
            "optimeDate" : ISODate("2019-09-19T19:59:00.000+08:00"),
            "optimeDurableDate" : ISODate("2019-09-19T19:59:00.000+08:00"),
            "lastHeartbeat" : ISODate("2019-09-19T19:59:09.787+08:00"),
            "lastHeartbeatRecv" : ISODate("2019-09-19T19:59:09.594+08:00"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "electionTime" : Timestamp(1568856315, 1),
            "electionDate" : ISODate("2019-09-19T09:25:15.000+08:00"),
            "configVersion" : 5
        }, 
        {
            "_id" : 2,
            "name" : "127.0.0.1:27019",
            "health" : 1.0,
            "state" : 7,
            "stateStr" : "ARBITER",
            "uptime" : 664,
            "lastHeartbeat" : ISODate("2019-09-19T19:59:09.787+08:00"),
            "lastHeartbeatRecv" : ISODate("2019-09-19T19:59:10.565+08:00"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : 5
        }
    ],
    "ok" : 1.0,
    "operationTime" : Timestamp(1568894340, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1568894340, 1),
        "signature" : {
            "hash" : { "$binary" : "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "$type" : "00" },
            "keyId" : NumberLong(0)
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM