搭建包含3台机器的Replica Set

原文地址: https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

概述
当发生断网、系统故障时,拥有3台机器的mongodb复制集(replica set)能够提供充分的冗余机制,保证数据库系统正常运行。MongoDB复制集对处理大量的分布式读取操作也有很好的性能。MongoDB复制集只允许包含奇数个成员(3,5,7....)。这样保证了MongoDB内部的选举机制可以在必要的时候平缓的选出主数据库。想要了解有关MongoDB复制集的更多信息,请参考 the Replication overview
创建MongoDB复制集的基本步骤:启动mongod实例,配置复制集,将mongod实例添加到复制集。

必要条件
对于生产环境,你应该采用尽可能多的独立的机器来托管mongod实例,每一台机器上托管一个实例。如果你的生产环境使用的是虚拟机,你应该将mongod实例安装在不同物理机的虚拟机上,这样可以减少因为电源、网络等原因造成的系统故障。
在部署MongoDB复制集之前,你应该现在每一台机器上安装mongodb实例(这些机器将来会被引用到MongoDB复制集)。如果你没有安装过mongodb,可以参考 installation tutorials
在创建MongoDB复制集之前,你需要检查每一台机器之间都可以互通。

部署MongoDB复制集时需要考虑的问题
系统架构
在生产环境,将每一个 mongodb的实例部署在不同的机器上,如果有可能的话将mongodb绑定到标准端口27017上。使用bind_ip参数来保证MongoDB能够监听到从指定地址的应用程序的链接。
链接
保证复制集中所有机器之间可以链接。
配置
在配置文件中指定运行时的参数(配置文件名mongod.conf,不同系统的路径不相同)。在部署MongoDB之前,在MongoDB的安装路径创建相应的文件夹。想了解更多的运行时参数请参考 Configuration File Options
步骤
在访问控制组件被禁用的情况下,按照下面的步骤部署mongodb复制集:
1. 使用恰当的参数启动复制集中的每一个节点,想了解有哪些可选参数,请参考 Replication Options
如果你的应用程序关联了多个复制集,那么需要给每一个复制集起一个清晰的名字。某些驱动程序通过复制集的名字链接复制集。
这个 命令就是使用--replSet参数给复制集制定名字:
"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath "C:\Program Files\MongoDB\data\db" --directoryperdb --logpath "C:\Program Files\MongoDB\log\mongod.log" --logappend --install --serviceName MongoDB --serviceDisplayName "MongoDB" --replSet "rs0"
使用net start MongoDB启动mongodb服务,当然你也可以手动去服务台启动。
2. 使用mongo命令行工具连接到复制集中的成员: C:\Program Files\MongoDB\Server\3.2\bin\mongo.exe"
3. 安装复制集
在其中一台机器(注意只在一台机器上执行,不能在另外几台机器上执行)上执行:
rs.initiate( {
_id : "rs0",
members: [ { _id : 0, host : "这台机器的IP地址:27017" } ]
})
命令执行结束:

4. 检查复制集初始化结果: rs.conf()
结果应如下图:

5. 向复制集中添加另外两台机器:
rs.add("第二台机器的IP")
rs.add("第三台机器的IP")
6. 重新执行rs.status()命令就可以看到全部复制集信息了,包括3台机器, 第一台机器是primary,另外两台机器是secondary。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值