资讯专栏INFORMATION COLUMN

docker搭建mongo副本集

betacat / 2082人阅读

摘要:设置构建副本集初始化配置查看副本集状态输出查看同步延迟备份关闭

设置network
docker network create my-mongo-cluster
docker network ls
构建副本集
docker run 
-p 30001:27017 
--name mongo1 
--net my-mongo-cluster 
daocloud.io/library/mongo mongod --replSet my-mongo-set

docker run 
-p 30002:27017 
--name mongo2 
--net my-mongo-cluster 
daocloud.io/library/mongo mongod --replSet my-mongo-set

docker run 
-p 30003:27017 
--name mongo3 
--net my-mongo-cluster 
daocloud.io/library/mongo mongod --replSet my-mongo-set
初始化配置
docker exec -it mongo1 mongo
db = (new Mongo("localhost:27017")).getDB("test")
config = {
      "_id" : "my-mongo-set",
      "members" : [
          {
              "_id" : 0,
              "host" : "mongo1:27017"
          },
          {
              "_id" : 1,
              "host" : "mongo2:27017"
          },
          {
              "_id" : 2,
              "host" : "mongo3:27017"
          }
      ]
  }

rs.initiate(config)
查看副本集状态
rs.status()

输出

my-mongo-set:PRIMARY> rs.status()
{
    "set" : "my-mongo-set",
    "date" : ISODate("2017-03-31T17:09:24.368Z"),
    "myState" : 1,
    "term" : NumberLong(1),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1490980160, 1),
            "t" : NumberLong(1)
        },
        "appliedOpTime" : {
            "ts" : Timestamp(1490980160, 1),
            "t" : NumberLong(1)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1490980160, 1),
            "t" : NumberLong(1)
        }
    },
    "members" : [
        {
            "_id" : 0,
            "name" : "mongo1:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 437,
            "optime" : {
                "ts" : Timestamp(1490980160, 1),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-03-31T17:09:20Z"),
            "electionTime" : Timestamp(1490979879, 1),
            "electionDate" : ISODate("2017-03-31T17:04:39Z"),
            "configVersion" : 1,
            "self" : true
        },
        {
            "_id" : 1,
            "name" : "mongo2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 296,
            "optime" : {
                "ts" : Timestamp(1490980160, 1),
                "t" : NumberLong(1)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1490980160, 1),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-03-31T17:09:20Z"),
            "optimeDurableDate" : ISODate("2017-03-31T17:09:20Z"),
            "lastHeartbeat" : ISODate("2017-03-31T17:09:23.936Z"),
            "lastHeartbeatRecv" : ISODate("2017-03-31T17:09:23.625Z"),
            "pingMs" : NumberLong(0),
            "syncingTo" : "mongo1:27017",
            "configVersion" : 1
        },
        {
            "_id" : 2,
            "name" : "mongo3:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 296,
            "optime" : {
                "ts" : Timestamp(1490980160, 1),
                "t" : NumberLong(1)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1490980160, 1),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-03-31T17:09:20Z"),
            "optimeDurableDate" : ISODate("2017-03-31T17:09:20Z"),
            "lastHeartbeat" : ISODate("2017-03-31T17:09:23.936Z"),
            "lastHeartbeatRecv" : ISODate("2017-03-31T17:09:23.624Z"),
            "pingMs" : NumberLong(0),
            "syncingTo" : "mongo1:27017",
            "configVersion" : 1
        }
    ],
    "ok" : 1
}

查看同步延迟

rs.printSlaveReplicationInfo()
备份
mongodump --dbpath /var/lib/mongodb --out /var/lib/mongodb.backup
mongorestore --dbpath /var/lib/tokumx /var/lib/mongodb.backup
关闭replica set
use admin
db.shutdownServer({timeoutSecs : 15})
doc

Creating a MongoDB replica set using Docker

Replica Set Offline (with downtime)

Manage mongod Processes

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18971.html

相关文章

  • mongo分片搭建

    摘要:集群搭建方式主从复制目前官方已不推荐使用副本集的副本集不同于以往的主从模式。分片是一种可以水平扩展的模式在数据量很大时特给力实际大规模应用一般会采用这种架构去构建。 mongodb集群搭建方式 1.master-slave 主从复制 目前官方已不推荐使用 2.Replica Sets 副本集 showImg(https://segmentfault.com/img/bVbsIpa?w=...

    BlackHole1 评论0 收藏0
  • 搭建 MongoDB分片(sharding) / 分区 / 群环境

    摘要:搭建分片分区集群环境安装三台机器关闭防火墙主节点副节点仲裁仲裁主节点副节点副节点仲裁主节点端口分配下载并且安装所有版本二进制文件自行下载改名分别在每台机器建立六个目录,因为不存储数据,只需要建立日志文件目录即可。 搭建 MongoDB分片(sharding) / 分区 / 集群环境 1. 安装 MongoDB 三台机器 关闭防火墙 systemctl stop firewalld.se...

    KunMinX 评论0 收藏0
  • MongoDB副本搭建

    摘要:下一小节我会和大家分享如何在真实的生产环境中创建副本集。好了,中副本集的搭建我们就先说到这里,小伙伴们有问题欢迎留言讨论。 我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoDB中我们可以通过副本集来实现这一需求,MongoDB副本集(Replica Set)是有自动故障恢复功能...

    RayKr 评论0 收藏0
  • 初识MongoDB分片

    摘要:复制一份,命名为,修改文件内容如下注意改为我们第一步创建的目录,端口号改为这个随意,只要该端口没被占用即可,表示这是一个配置服务器,另外由于我们的配置服务器要做成备份集,所以要设置。 分片是指将数据拆分,拆分后存放在不同的机器上的过程,以此来降低单个服务器的压力,同时也解决单个服务器硬盘空间不足的问题,让我们可以用廉价的机器实现高性能的数据架构。有的小伙伴不理解分片和副本集的差异,一言...

    Nino 评论0 收藏0
  • Docker和Kubernetes将MongoDB作为微服务来运行

    摘要:注意事项用容器和编排工具运行介绍了一些额外注意事项数据库是有状态的。尤其,在副本集合中,一个节点必须被用来执行和命令。名字叫做的被配置用来确保的单个实例是一直在运行的。 想要在你的手提电脑上尝试MongoDB吗?执行一个命令,然后拥有一个轻量级,独立的沙箱;再执行一个命令,删除你完成之后所有的痕迹。是不是需要一个在多个环境中都跟你的应用程序堆栈一样的应用程序?创建一你自己的容器镜像,然...

    Neilyo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<