1.基本信息如下

服务器地址 192.168.73.129
副本集名称 rs
容器节点及端口映射
        m0 37017:27017
        m1 47017:27017
        m2 57017:27017
注:机器环境安装docker

2.部署步骤

2.1下载mongo镜像

docker pull mongo

2.2 启动三个节点

docker run --name m0 -p 37017:27017 -d mongo --replSet "rs"

docker run --name m1 -p 47017:27017 -d mongo --replSet "rs"

docker run --name m2 -p 57017:27017 -d mongo --replSet "rs"

docker ps -a   //查看启动的容器

2.3 连接任意一个节点,进行副本集配置

进入其中一个容器:docker exec -it de242cc5fa5a  /bin/bash

连接三个节点中的任意一个,注意ip地址为宿主机ip,我当前的为192.168.73.129

mongo --host 192.168.73.129 --port 37017

此时已连接到m0节点,进行副本集配置

var config={
_id:"rs",
members:[
{_id:0,host:"192.168.73.129:37017"},
{_id:1,host:"192.168.73.129:47017"},
{_id:2,host:"192.168.73.129:57017"}
]};
rs.initiate(config)

响应应该类似下面,注意此时命令提示符已经发生变化,由原来的 > 变成了 rs:SECONDARY>

{
"ok" : 1,
"operationTime" : Timestamp(1522810920, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1522810920, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}

2.4查看副本集配置信息

rs:SECONDARY> rs.conf()
{
"_id" : "rs",
"version" : 1,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "192.168.73.129:37017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "192.168.73.129:47017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 2,
"host" : "192.168.73.129:57017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : NumberLong(0),
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : { },
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5b3c937896d237ac24a0648e")
}
}
rs:SECONDARY>

2.5 查看副本集状态

rs:SECONDARY> rs.status()
{
"set" : "rs",
"date" : ISODate("2018-07-04T09:45:38.110Z"),
"myState" : 2,
"term" : NumberLong(1),
"syncingTo" : "192.168.73.129:37017",
"syncSourceHost" : "192.168.73.129:37017",
"syncSourceId" : 0,
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"appliedOpTime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
}
},
"lastStableCheckpointTimestamp" : Timestamp(1530697480, 1),
"members" : [
{
"_id" : 0,
"name" : "192.168.73.129:37017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 967,
"optime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-07-04T09:45:30Z"),
"optimeDurableDate" : ISODate("2018-07-04T09:45:30Z"),
"lastHeartbeat" : ISODate("2018-07-04T09:45:36.221Z"),
"lastHeartbeatRecv" : ISODate("2018-07-04T09:45:36.296Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"electionTime" : Timestamp(1530696579, 1),
"electionDate" : ISODate("2018-07-04T09:29:39Z"),
"configVersion" : 1
},
{
"_id" : 1,
"name" : "192.168.73.129:47017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 967,
"optime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-07-04T09:45:30Z"),
"optimeDurableDate" : ISODate("2018-07-04T09:45:30Z"),
"lastHeartbeat" : ISODate("2018-07-04T09:45:36.221Z"),
"lastHeartbeatRecv" : ISODate("2018-07-04T09:45:36.219Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "192.168.73.129:37017",
"syncSourceHost" : "192.168.73.129:37017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "192.168.73.129:57017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 2153,
"optime" : {
"ts" : Timestamp(1530697530, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-07-04T09:45:30Z"),
"syncingTo" : "192.168.73.129:37017",
"syncSourceHost" : "192.168.73.129:37017",
"syncSourceId" : 0,
"infoMessage" : "",
"configVersion" : 1,
"self" : true,
"lastHeartbeatMessage" : ""
}
],
"ok" : 1,
"operationTime" : Timestamp(1530697530, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1530697530, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
rs:SECONDARY>

2.6 客户端工具连接

docker中部署mongodb副本集的更多相关文章

  1. Docker下搭建mongodb副本集

    背景 有需求需要对mongodb做一个容灾备份.根据官网,发现mongodb最新版本(4.0)已经抛弃了主从模式而采用副本集进行容灾.副本集的优势在于:"有自动故障转移和恢复特性,其任意节点 ...

  2. 生产环境部署MongoDB副本集(带keyfile安全认证以及用户权限)

    本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/8,欢迎留言. 安装软件包:mongodb-linux-x86_64-3.4.1.tgz ...

  3. springmvc中整合mongodb副本集配置文件

    配置文件jdbc.properties: mongo.hostport=192.168.100.100:28007,192.168.100.110:28008,192.168.100.120:2800 ...

  4. MongoDB和Java(6):Spring Data整合MongoDB副本集、分片集群

    最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...

  5. 四十三.MongoDB副本集 MongoDB文档管理

    一.部署MongoDB副本集 1.1 启用副本集配置并指定集群名称 rs1 1.2 定义集群成员列表 部署好机器51,52,53:51上配置 bind_ip=192.168.4.51(要改) port ...

  6. mongodb副本集原理及部署记录

    工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为 ...

  7. MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录

    Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...

  8. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  9. MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录

    MongoDB复制集是一个带有故障转移的主从集群.是从现有的主从模式演变而来,增加了自动故障转移和节点成员自动恢复.MongoDB复制集模式中没有固定的主结点,在启动后,多个服务节点间将自动选举产生一 ...

随机推荐

  1. 如何使用JFinal开发javaweb

    介绍开始: 编辑器:MyEclipse; 数据库:MySQL; 服务器:tomcat; 1 首先新建web项目 要强调的是Target runtime必须选择为None.然后点击两次Next,选中创建 ...

  2. d3.js(v5.7)树状图

    一.新建画布 二.数据处理 三.绘制连接线 图示: 四.绘制节点.文字 图示: 五.总结 path元素:其实就是定义了绘图的坐标点,从哪开始,移动到哪,怎样移动(命令) 具体可百度(或许以后我会总结一 ...

  3. echarts-detail---散点图

    data4 = [{ xAxis: result.AvgEvaluate, seriesId: ', name: '基干360综合分' }, { yAxis: evalue, seriesId: ', ...

  4. python编程(最简单的rpc代码)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 采用twisted可以编写最简单的rpc代码. server端代码如下, from twiste ...

  5. MySQL 5.7笔记

    1. 初始化 重命名my-default.ini为my.ini 添加character_set_server=utf8 运行mysqld --initialize 2. 重置密码 服务器运行: mys ...

  6. MySQL性能指标计算方式

    -- 生成报告文件到/tmp目录中 tee /tmp/mysql_performance_stat.txt -- 统计性能指标前先开启下列参数,该参数使用IS数据库来存放数据库信息,由于使用PS库存放 ...

  7. selenium-java,解决一些加了显性等待和隐性等待都不好使的情况,以及给UI自动化加上暂停功能

    最近在UI自动化时遇到了,上一步成功操作后没有响应的情况(动画加载和浏览器加载导致实际没有问题),导致下一步无法成功操作,所有想在尝试2次操作后再次进行上一步操作解决这种情况导致的错误(其实是不想每一 ...

  8. Servlet传统配置方式和Servlet3.0使用注解的方式

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: <servlet> <servlet-name ...

  9. Codeforces 1030E 【暴力构造】

    LINK 题目大意:给你n个数,你可以交换一个数的任意二进制位,问你可以选出多少区间经过操作后异或和是0 思路 充分必要条件: 区间中二进制1的个数是偶数 区间中二进制位最多的一个数的二进制个数小于等 ...

  10. BZOJ4245 ONTAK2015 OR-XOR 【位运算+贪心】*

    BZOJ4245 ONTAK2015 OR-XOR Description 给定一个长度为n的序列a[1],a[2],…,a[n],请将它划分为m段连续的区间,设第i段的费用c[i]为该段内所有数字的 ...