Replica set(复制集)是MongoDB推荐的高可用性解决方案。它使用n个(通常为奇数)mongod节点,构建具备数据备份,故障转移以及自动恢复的高可用性方案。html
本文介绍的是已存在的单点MongoDB扩展为一个高可用性的Replica set部署。假设已存在mongod实例节点经过单独文件配置启动,配置项以下sql
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
其余配置选项根据实际状况选择