mongodb 副本集部署
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 副本集部署的更多相关文章
- MongoDB副本集部署
mongodb 副本集搭建 环境192.168.1.191 master192.168.1.192 slave,arbiterOS: ubuntu14.04mongodb: mongodb-l ...
- Mongodb 副本集分片(二)---mongodb副本集部署脚本详解
分享下,最近做的一主一从一仲裁的示例,如有需要,大家可以扩展成一主两从一仲裁. 大家可以看到 我的集群名字沿用了默认的neunnm,如果是其他的话 大家注意修改. 需要辅助文件hosts.con ...
- mongodb副本集原理及部署记录
工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为 ...
- MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录
Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...
- NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署
NoSQL数据库Mongodb副本集架构(Replica Set)高可用部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MongoDB 是一个基于分布式文件存储的数据库.由 C ...
- MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录
MongoDB复制集是一个带有故障转移的主从集群.是从现有的主从模式演变而来,增加了自动故障转移和节点成员自动恢复.MongoDB复制集模式中没有固定的主结点,在启动后,多个服务节点间将自动选举产生一 ...
- Mongodb副本集+分片集群环境部署记录
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- Mongodb副本集+分片集群环境部署
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- MongoDB 带访问控制的副本集部署
当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4 Centos6.5 一. 下载安装 MongoDB Server 及 ...
随机推荐
- 【4-1】js函数、事件、补充知识
一.函数操作 (一)字符串操作: (1)变量名.toLowerCase():--转小写 toUpperCase():----转大写 (2)变量名.substring(索引,截取到位数);--- ...
- 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录
https://www.cnblogs.com/KevinGeorge/p/8563458.html 一.域控windows安全日志基本操作 1.打开powershell或者cmd 1 #gpedit ...
- MySQL配置文件以及服务的开启关闭重启
linux系统中,配置文件路径一般为/etc/my.cnf [root@host ~]# mysql --help|grep my.cnf order of ...
- 5. Tomcat窗口标题修改
具体修改方法如下: 进入tomcat的bin目录,打开catalina.bat .找到下面的内容: if not "%OS%" == "Windows_NT" ...
- PHP企业微信配置点击事件。
1. 2. 3.URL接受值进行签名验证. <?phpinclude_once "../commmm/WXBizMsgCrypt.php";/*微信提供 demo*/// 假 ...
- python中的递归小实例
#1.n! def fact(n): if n == 0: return 1 else: return n*fact(n-1)print(fact(10)) #2.斐波那契数列F(n)=F(n-1)+ ...
- 01.hadoop集群环境搭建
hadoop集群搭建的步骤 1.安装jdk2修改ip地址3.关闭防火墙4.修改hostname5.设置ssh自动登陆6.安装hadoop-------------------------------- ...
- Django之视图层介绍
1. 伪静态设置: 路由层: url('^index/$', views.index), url('^article/(?P<id>(\d+)).html/$', views.articl ...
- Navicat for MySQL 安装和破解(完美)
Navicat for MySQL 安装软件和破解补丁: 链接:https://pan.baidu.com/s/1oKcErok_Ijm0CY9UjNMrnA 密码:4xb1 navicat fo ...
- Runnable接口和Callable接口的区别。
Callable需要实现call方法,而Runnable需要实现run方法:并且,call方法还可以返回任何对象,无论是什么对象,JVM都会当作Object来处理.但是如果使用了泛型,我们就不用每次都 ...