发表于 2015-7-9 12:51:24

MongoDB replica set部署实践

MongoDB高可用性方案
  Replica set(复制集)是MongoDB推荐的高可用性解决方案。它使用n个(一般为奇数)mongod节点,构建具有数据备份,故障转移以及自动恢复的高可用性方案。
  
Replica set部署(step by step)
  本文介绍的是已存在的单点MongoDB扩展为一个高可用性的Replica set部署。假设已存在mongod实例节点通过单独文件配置启动,配置项如下

[*]port=18888
[*]dbpath=E:\mongodb\data
[*]logpath=E:\mongodb\log\mongo.log
[*]logappend=true
[*]directoryperdb=true
[*]journal=true
[*]serviceName=MongoDB_Test
[*]serviceDisplayName=MongoDB for test
  1.停止MongoDB_Test服务
  2.增加配置项replSet=rs0(复制集名称),重新启动MongoDB_Test服务,使得MongoDB_Test mongod实例成为rs0的一个成员
  3. mongo命令登录到MongoDB_Test mongod实例
  4.rs.initiate()初始化复制集
  5.rs.status()查看复制集合状态

  6.分别在两台服务器上新建mongod实例并启动,作为Replica set的另外两个成员。如何安装MongoDB
  7.rs.add("")新增mongod实例作为Replica set的成员,rs.addArb("")新增mongod实例作为Replica set的仲裁节点,它不存储数据。在域环境下,hostname可以为域名或IP;对于没有入域的各个mongod实例节点,hostname为机器名,并且需要在各个节点服务器host文件中配置与服务器IP映射

  成功加入到Replica set后,会自动同步数据到其他的Repilica set成员(时间视数据大小而定)
  至此,成功扩展单点MongoDB成为Replica set部署。可通过mongo命令连接任一mongod实例查看Replica set状态

  8.模拟插入,修改,删除数据,发现Replica set各成员数据同步
  9.停止Replica set任一成员,不影响数据服务,重启后自动从其他成员同步变化的数据,如果是primary成员,则Replica set会选举出另一成员充当primary角色
  
应用程序配置连接
  示例
  mongodb://ip1:port1,ip2:port2,ip3:port3/?safe=true;maxpoolsize=100
  其他配置选项根据实际情况选择
  
注意

[*]数据库写入操作只能由primary角色的mongod实例完成
[*]默认情况下,读取数据也是由primary角色的mongod实例完成
[*]可配置实现由secondary完成数据读取,在并发压力大的情况下实现读写分离
  
相关文章

[*]Replica Sets之选举
  

页: [1]
查看完整版本: MongoDB replica set部署实践