1.安装三节点linux环境:196.168.1.111,196.168.1.112,192.168.1.113(三节点可彼此ping通)

2.三节点安装mongodb,参考https://blog.csdn.net/yezhenxu1992/article/details/51375123 安装3.2.20 版本mongodb

3.设置/etc/mongodb.conf

#数据路径
dbpath=/var/data
#日志路径
logpath=/var/log/mongodb/mongodb.log
#追加保存日志
logappend=true
#监听端口
port=27017
fork=true
# 未认证
noauth=true
# 保存mongodb pid文件
pidfilepath=/var/run/mongodb/mongod.pid
# 监听mongodb ip
bind_ip=196.168.1.111
# 副本集名称
replSet=spock

启动mongodb,可以使用如下脚本:

#!/bin/bash
pid_file=/var/run/mongodb/mongod.pid
pid_dir=/var/run/mongodb
data_dir=/var/data
if [ ! -e "$pid_dir" ]
then
mkdir -p $pid_dir
touch $pid_file
else
if [ ! -e "$pid_file" ]
then
touch $pid_file
fi
fi
if [ ! -e $data_dir ]
then
mkdir -p $data_dir
fi
mongod -f /etc/mongodb.conf

4.配置副本集:

mongodb连接到任一mongodb 比如:mongo 196.168.1.111/test,如下图:

config={"_id":"spock",

"members":[
{"_id":0,"host":"196.168.1.111:27017"},
{"_id":1,"host":"196.168.1.112:27017"},
{"_id":2,"host":"196.168.1.113:27017"}
]}
{
"_id" : "spock",
"members" : [
{
"_id" : 0,
"host" : "196.168.1.111:27017"
},
{
"_id" : 1,
"host" : "196.168.1.112:27017"
},
{
"_id" : 2,
"host" : "196.168.1.113:27017"
}
]
}
rs.initiate(conf)

5.副本集初始化完成后,三个节点上mongodb会根据初始化的先后顺序分出PRIMARY和SECONDARY.

6.三个节点中,如果primary节点异常,两个secondary节点中会自动选出primary节点,不影响提供读写功能。但是当此时,primary节点挂点,只剩下secondary时,服务不再提供写入功能,只能读取数据。除非强制将secondary转为primary后,在一个节点上提供读写功能。

比如只剩下一个节点196.168.1.111节点,强制重新配置副本集。

config={"_id":"spock",
"members":[
{"_id":0,"host":"196.168.1.111:27017"},
]}
{
"_id" : "spock",
"members" : [
{
"_id" : 0,
"host" : "196.168.1.111:27017"
},
]
}
rs.reconfig(conf,{'force':true})
rs.reconfig(conf,{'force':true})强制重新配置副本集,注意在config中_id需要与原来保持一致。

mongodb 副本集部署的更多相关文章

  1. MongoDB副本集部署

    mongodb 副本集搭建 环境192.168.1.191   master192.168.1.192   slave,arbiterOS: ubuntu14.04mongodb: mongodb-l ...

  2. Mongodb 副本集分片(二)---mongodb副本集部署脚本详解

    分享下,最近做的一主一从一仲裁的示例,如有需要,大家可以扩展成一主两从一仲裁. 大家可以看到  我的集群名字沿用了默认的neunnm,如果是其他的话   大家注意修改. 需要辅助文件hosts.con ...

  3. mongodb副本集原理及部署记录

    工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为 ...

  4. MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录

    Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...

  5. NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署

    NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...

  6. MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录

    MongoDB复制集是一个带有故障转移的主从集群.是从现有的主从模式演变而来,增加了自动故障转移和节点成员自动恢复.MongoDB复制集模式中没有固定的主结点,在启动后,多个服务节点间将自动选举产生一 ...

  7. Mongodb副本集+分片集群环境部署记录

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  8. Mongodb副本集+分片集群环境部署

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  9. MongoDB 带访问控制的副本集部署

    当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4  Centos6.5  一. 下载安装 MongoDB Server 及 ...

随机推荐

  1. mysql-5.5.50-winx64

    1.help 2.Service 3.Configure 4.User 5.design last 1.获取帮助文档 cd C:\Program Files\mysql\mysql-5.5.50-wi ...

  2. 20165205 2017-2018-2 《Java程序设计》第七周学习总结

    20165205 2017-2018-2 <Java程序设计>第七周学习总结 教材学习内容总结 下载XAMPP并完成配置 完成XAMPP与数据库的连接 学会创建一个数据库 学会用java语 ...

  3. HBase中无法使用backspace删除

    转载自:Hbase命令行无法删除的问题 在HBase的shell命令行界面输入错误项按"退格键"删除,却怎么也删除不了: 解决办法: 第一步,修改SecureCRT的设置参数: 第 ...

  4. 7. Orcle树形结构(类似数据字典有父子类关系),查询末节点的所有记录

    SELECT a.*FROM tablename aWHERE NOT EXISTS (SELECT 1 FROM tablename b WHERE b.Fid = a.id)START WITH ...

  5. JSP创建用户验证的实例

    1 显示中文的代码编码解决办法: <%@ page language="java" import="java.util.*" pageEncoding=& ...

  6. Image.Url 无法使用 Server.MapPath(使用后无论如何也不显示)

    Image.Url 无法使用 Server.MapPath(使用后无论如何也不显示)

  7. python 如何获取当前文件/文件夹

    python 如何获取当前文件/文件夹? 1.获取当前文件的实际路劲: os.path.realpath(__file__)          ==> D:\python_test\test_p ...

  8. 机器学习入门-文本数据-构造Tf-idf词袋模型(词频和逆文档频率) 1.TfidfVectorizer(构造tf-idf词袋模型)

    TF-idf模型:TF表示的是词频:即这个词在一篇文档中出现的频率 idf表示的是逆文档频率, 即log(文档的个数/1+出现该词的文档个数)  可以看出出现该词的文档个数越小,表示这个词越稀有,在这 ...

  9. mp3-

  10. centos7,进程最大打开文件数 too many open files错误

    遇到一问题,tomcat最近发生几次异常,查看日志,发现一直报 too many open files,熟悉的同学都知道这是用户打开文件数过多导致的, 再用命令ls /proc/20861/fd/ | ...