副本集指南(一)

一、副本集部署指南

1.部署一个副本集

这个指南介绍了,如何使用3个现有的mongod实例,创建一个3成员副本集。

一个3成员副本集提供了足够的冗余来适应大多数网络分区以及系统故障。这种模式也有足够的能力来适应分布式读操作。副本集应该有奇数个成员,才能保证选举的顺利。基本的过程是:启动一个mongod实例,进行副本集配置,添加其他mongod实例到此副本集中。

1.1部署准备

    生产部署时,你需要管理分开运行在不同机器上的mongod实例。当使用虚拟机时,你需要放置每一个mongod实例于分开的host服务器上,冗余的电源电路和冗余的网络路径。
    部署副本集前,你需要在每一台机器上安装MongoDB。
    创建副本集前,你需要核实你的网络环境,保障所有的机器间的连接正常。一个成功的副本集,每一个成员必须能够连接到其他的任意成员。

1.2部署注意事项

  • 架构 在每台机器上部署成员时,尽可能绑定到默认的MongoDB端口27017,也可以使用bind_ip选项来保证对配置ip的应用监听。在一个地理分布的副本集中,保证大多数的副本集mongod实例存在于primay附近。
  • 连接 保证所有的间网络连接的通畅,进行权限控制,以及防火墙控制
  • 配置 指定每台机器运行时的配置文件为/etc/mongod.conf或者相关位置,或者指定文件存储位置

1.3部署过程

·step1 使用合适的选项,启动每一个成员上的实例,连接到同一个副本集。

mongod --replSet "rs0" /etc/mongod.conf

·step2 使用mongod shell连接到一个成员实例,初始化副本集:

rs.initate()

·step3 在同一mongod shell中,修改初始化副本集的配置:

rs.conf()

执行结果如下

{
    "_id" : "rs0",
    "version" : 1,
    "members" : [
        {
            "_id" : 1,
            "host" : "mongodb0.example.net:27017"
        }
    ]
}

·step4 在同一mongod shell中,将其他成员添加到该副本集,完成后,副本集将选举出一个primary:

rs.add("mongodb1.example.net")

·step5 在同一mongod shell中,检查副本集的状态:

rs.status()

2、部署一个开发测试用的副本集


在开发测试环境中,可以使用一台机器来模拟3成员的副本集。原理是在单台机器上运行多个不同port的mongod实例,然后将他们添加到副本集。

·step1 为每一个port的mongod实例创建一个文件目录:

mkdir -p /srv/mongodb/rs0-0 /srv/mongodb/rs0-1 /srv/mongodb/rs0-2

·step2 启动mongod实例,指定port,dbpath,replset等参数:

mongod --port 27017 --dbpath /srv/mongodb/rs0-0 --replSet rs0 --smallfiles 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值