MongoDB replica set部署实践

MongoDB高可用性方案

Replica set(复制集)是MongoDB推荐的高可用性解决方案。它使用n个(通常为奇数)mongod节点,构建具备数据备份,故障转移以及自动恢复的高可用性方案。html

 

Replica set部署(step by step)

本文介绍的是已存在的单点MongoDB扩展为一个高可用性的Replica set部署。假设已存在mongod实例节点经过单独文件配置启动,配置项以下sql

  • 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服务mongodb

2.增长配置项replSet=rs0(复制集名称),从新启动MongoDB_Test服务,使得MongoDB_Test mongod实例成为rs0的一个成员数据库

3. mongo命令登陆到MongoDB_Test mongod实例windows

4.rs.initiate()初始化复制集服务器

5.rs.status()查看复制集合状态并发

6.分别在两台服务器上新建mongod实例并启动,做为Replica set的另外两个成员。如何安装MongoDBapp

7.rs.add("<hostname><:port>")新增mongod实例做为Replica set的成员,rs.addArb("<hostname><:port>")新增mongod实例做为Replica set的仲裁节点,它不存储数据。在域环境下,hostname能够为域名或IP;对于没有入域的各个mongod实例节点,hostname为机器名,而且须要在各个节点服务器host文件中配置与服务器IP映射nosql

 成功加入到Replica set后,会自动同步数据到其余的Repilica set成员(时间视数据大小而定)htm

至此,成功扩展单点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完成数据读取,在并发压力大的状况下实现读写分离

 

相关文章

 

相关文章
相关标签/搜索