MongoDB ReplicaSet 集群搭建
说明
本文创建的集群的名字为test,在同一台机器上创建了三个mongo实例,端口不同即可。
安装mongodb的教程,之前总结过,请参考:CentOS安装MongoDB笔记
创建实例
# 本机默认原有mongodb.conf及相关文件夹了
cp /etc/mongodb.conf /etc/mongodb2.conf
cp /etc/mongodb.conf /etc/mongodb3.conf
mkdir -p /data/{mongodb2,mongodb3}/log
touch /data/{mongodb2,mongodb3}/log/mongodb.log
# 配置文件mongodb.conf
dbpath=/data/mongodb
logpath=/data/mongodb/log/mongodb.log
pidfilepath =/data/mongodb/mongodb.pid
logappend=true
port=27017
bind_ip = 0.0.0.0 # 支持远端访问
fork=true # 后台运行
#auth=true # 注释则关闭权限验证, 创建好用户再启动
replSet=test
mongodb2.conf和mongodb3.conf也都要修改为对应的路径,比如端口号对应了27018/27019。
创建实例:
mongod -f /etc/{mongodb.conf,mongodb2.conf,mongodb3.conf}
可以通过:
mongo --port 27017 # 进入对应端口号的实例
集群配置文件其他示例
# mongod.conf
systemLog:
destination: file
logAppend: false
logRotate: rename
path: /data/mongodb/logs/mongod.log
# Where and how to store data.
storage:
dbPath: /data/mongodb/
journal:
enabled: true
# network interfaces
net:
port: 27017
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
security:
authorization: enabled
keyFile: /home/app/mongodb/mongodb-keyfile
#operationProfiling:
replication:
replSetName: "cluster"
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
集群初始化
rs.initiate()
添加节点
rs.addArb("localhost:27018")
增加仲裁(arbiter)节点
To determine the current primary, use
db.isMaster()while connected to any member of the replica set.
可以使用db.isMaster()函数来查看是否是主节点。
登录主节点:
rs.addArb("localhost:27019")
参考:
移除
rs.remove("localhost:27019")
说明
如果要实现一定容灾的话,至少需要三个节点来做replica set,当其中一个down掉之后,另外两个会重新选举一个primary。但是如果其中两个都down掉的话,另外一台不管之前是primary还是secondary,都会降级为secondary,这时mongodb会不可写。
避免这种情况更简单的办法是加入一个arbiter节点,只负责选举,不负责数据存储。这样一来结构就变成了primary,secondary,arbiter三个角色,任何一个down掉的话,都不会影响mongodb的使用,当然,如果两个都down掉那就没辙了
参考:
FAQ
Q1:URI无法连接
高版本的MongoDB需要加上replicaSet参数才行。
mongodb://localhost,localhost:27018,localhost:27019/test?replicaSet=test
参考:
参考
- 学习MongoDB(二) Replica Set集群配置
- Deploy a Replica Set-官宣
- MongoDB 复制集(Replica Set)搭建
- 江南一点雨-MongoDB副本集其他细节
MongoDB ReplicaSet 集群搭建的更多相关文章
- mongodb分布式集群搭建手记
一.架构简介 目标单机搭建mongodb分布式集群(副本集 + 分片集群),演示mongodb分布式集群的安装部署.简单操作. 说明在同一个vm启动由两个分片组成的分布式集群,每个分片都是一个PSS( ...
- MongoDB分布式集群搭建
最近在做一个关于车险的项目,由于数据量较大,实验室的Boss决定采用HBase+ES/MongoDB这两种方案,并做性能对比,本人负责MongoDB方案.为了满足海量数据的存储要求,需要搭建一个分布式 ...
- mongodb windows 集群搭建
准备三台机器,系统:windows 8 192.168.1.1 192.168.1.2 192.168.1.3 每台机器上安装mongodb 服务,步骤: 下载以下文件并依次执行安装 clearcom ...
- MongoDB分片集群搭建及扩容
### 实验:分片集群搭建及扩容#### 实验目标及流程 * 目标:学习如何搭建一个两分片的分片集群 * 环境:3台Linux虚拟机器,4Core 8GB * 步骤: * 配置域名解析 * 准备分片目 ...
- MongoDB 分片集群搭建
一.概述 分片是一种在多台机器上分配数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作.有两种解决系统增长的方法:垂直扩展和水平扩展. 垂直扩展涉及增加单个服务器的容量,例如使用 ...
- MongoDB分布式集群搭建(分片加副本集)
# 环境准备 服务器 # 环境搭建 文件配置和目录添加 新建目录的操作要在三台机器中进行,为配置服务器新建数据目录和日志目录 mkdir -p $MONGODB_HOME/config/data mk ...
- mongodb sharding集群搭建
创建虚拟机,如果是使用copy的方式安装系统,记得修改机器名,否则所有的机器名称都一样,会造成安装失败 同时关闭掉防火墙,将所有的机器的时间调成一致,master和slave的heartbeat间隔不 ...
- mongodb副本集群搭建
一.环境介绍 1.机器信息 10.40.6.68 10.40.6.108 10.40.6.110 软件环境为centos 6.x 2.mongodb 下载链接地址 https://www.mongod ...
- MongoDB windows基础配置及集群搭建
由于公司业务的发展MSSQL已处于瓶颈.因为没钱买牛逼服务器只能靠软件来实现最大优化了.原来的系统架构如下图:
随机推荐
- ueditor上传图片配置成功,但是如何删除无用的图片
我使用ueditor作为富文本编辑器,配置已经好了,上传功能也好了.现在的问题是当使用ueditor上传图片的时候,选择了图片就立刻上传到指定的文件夹里,而后续即使没有保存该篇文章内容,即取消操作,图 ...
- 将n的k位清0
实例三:将n的k位清0 方法: result= n &~(1<<k) 使第k为变成0,再与运算,0和任何数进行与运算都是0. 解释: 0000 0001 ---- 1 左移k位 ...
- html5-垂直定位
*{ padding: 0px; margin: 0px; }#div2{ background: green; padding: 15px; width: 200px; ...
- SITECORE体验编辑器 - 多站点实施站点解析
SITECORE体验编辑器 - 多站点实施站点解析 我们使用其中一个多站点实现遇到了Sitecore体验编辑器的问题.从内容编辑器中选择并尝试在体验编辑器中打开时属于某个站点的任何页面将始终解析为 ...
- Azure IoT 技术研究系列2-设备注册到Azure IoT Hub
上篇博文中,我们主要介绍了Azure IoT Hub的基本概念.架构.特性: Azure IoT 技术研究系列1-入门篇 本文中,我们继续深入研究,做一个起步示例程序:模拟设备注册到Azure IoT ...
- 网关绑定命令,解决arp攻击
一般家里的宽带都采用ADSL设备,通过固定IP地址接入Internet,但是经常会出现断网的现象,那么如何通过ARP命令绑定默认网关来解决这个问题呢? 工具/原料 ARP命令 CMD命令提示符 方法/ ...
- mitmproxy 中间人攻击的小玩笑
import mitmproxy.http from mitmproxy import ctx, http class Joker: def request(self, flow: mitmproxy ...
- 爬虫--cheerio
const cheerio = require('cheerio') const $ = cheerio.load('<h2 class="title">Hello w ...
- django中模型详解-字段类型与约束条件
这片博文来详细说明django模型的使用,涉及到django模型的创建,字段介绍,以及django模型的crud操作,以及一对一等操作. 在使用模型之前,我们首先设置数据库选项,django的默认数据 ...
- mysql判断两个时间段是否有交集
//判断两个时间段是否有交集 private function checkTimeCross($start_time,$end_time){ $sql ) AND ((start_time > ...