天天看点

副本集

副本集就是有自动故障恢复功能的主从集群

副本集

主存集群和副本集最大的区别是副本集没有固定的主节点;整个集群会选出一个主节点,当其挂掉后,又在剩下的从节点中选择其他节点为主节点,副本集总有一个活跃点和一个或多个备份节点。

例子: 启动节点1: mongod --dbpath D:\node1 --logpath D:\logs\node1\logs.txt --logappend --port 10001 --replSet itcast/localhost:10002 --master --dbpath: 数据存放地址

--logpath:日志存放地址

--logappend:日志的追加方式

--port:端口

--replSet:指定为副本集,itcast是副本集的名称(唯一的),一个节点可能充当多个角色;

启动节点2: mongod --dbpath D:\node2 --logpath D:\logs\node2\logs.txt --logappend --port 10002 --replSet itcast/localhost:10001 启动节点3: mongod --dbpath D:\node3 --logpath D:\logs\node3\logs.txt --logappend --port 10003 --replSet itcast/localhost:10001,localhost:10002

在客户端连接任意一台MongoDB服务器,初始化: db.runCommand({         "replSetInitiate":{          "_id":"itcast",          "members":[           {

               "_id":1,                "host":"localhost:1000",               "priority":30           }           {

               "_id":2,                "host":"localhost:10002",               "priority":20           }           {

               "_id":3,                "host":"localhost:10003",               "priority":10           }            ]} } ) 查看副本集节点和成员: db.$cmd.findOne({ismaster:1}); 副本集的非主节点的节点的主要功能是备份数据和数据恢复

以后在实际的部署环境当中,一个节点有可能充当多个节点,在主从复制里面是从节点,在副本集中是备份节点