说明

本文创建的集群的名字为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 ReplicaSet 集群搭建的更多相关文章

  1. mongodb分布式集群搭建手记

    一.架构简介 目标单机搭建mongodb分布式集群(副本集 + 分片集群),演示mongodb分布式集群的安装部署.简单操作. 说明在同一个vm启动由两个分片组成的分布式集群,每个分片都是一个PSS( ...

  2. MongoDB分布式集群搭建

    最近在做一个关于车险的项目,由于数据量较大,实验室的Boss决定采用HBase+ES/MongoDB这两种方案,并做性能对比,本人负责MongoDB方案.为了满足海量数据的存储要求,需要搭建一个分布式 ...

  3. mongodb windows 集群搭建

    准备三台机器,系统:windows 8 192.168.1.1 192.168.1.2 192.168.1.3 每台机器上安装mongodb 服务,步骤: 下载以下文件并依次执行安装 clearcom ...

  4. MongoDB分片集群搭建及扩容

    ### 实验:分片集群搭建及扩容#### 实验目标及流程 * 目标:学习如何搭建一个两分片的分片集群 * 环境:3台Linux虚拟机器,4Core 8GB * 步骤: * 配置域名解析 * 准备分片目 ...

  5. MongoDB 分片集群搭建

    一.概述 分片是一种在多台机器上分配数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作.有两种解决系统增长的方法:垂直扩展和水平扩展. 垂直扩展涉及增加单个服务器的容量,例如使用 ...

  6. MongoDB分布式集群搭建(分片加副本集)

    # 环境准备 服务器 # 环境搭建 文件配置和目录添加 新建目录的操作要在三台机器中进行,为配置服务器新建数据目录和日志目录 mkdir -p $MONGODB_HOME/config/data mk ...

  7. mongodb sharding集群搭建

    创建虚拟机,如果是使用copy的方式安装系统,记得修改机器名,否则所有的机器名称都一样,会造成安装失败 同时关闭掉防火墙,将所有的机器的时间调成一致,master和slave的heartbeat间隔不 ...

  8. mongodb副本集群搭建

    一.环境介绍 1.机器信息 10.40.6.68 10.40.6.108 10.40.6.110 软件环境为centos 6.x 2.mongodb 下载链接地址 https://www.mongod ...

  9. MongoDB windows基础配置及集群搭建

    由于公司业务的发展MSSQL已处于瓶颈.因为没钱买牛逼服务器只能靠软件来实现最大优化了.原来的系统架构如下图:

随机推荐

  1. 正则表达式中\b和\s有什么区别

    字符串:abcsdsadas abc asdsadasdabcasdsa使用\sabc\s和\babc\b都能匹配中间的abc,这种方法不是重复了么,/s是匹配空格回车等得,/b网上教程说得不清楚什么 ...

  2. Minecraft 1.8.9 FML Mod 开发教程

    Mod开发教程 https://fmltutor.ustc-zzzz.net/

  3. fang99-三号线与四号线新盘

    三号线与四号线新盘 http://www.fang99.com/buycenter/buildingsearch_map.aspx?projectid=0000011104 http://www.fa ...

  4. (1)打造简单OS-汇编写入引导区,虚拟机启动步骤

    首先需要您在网上下载NASM编译器,可以将汇编编译为二进制文件 1.写一段汇编代码在屏幕上打印一段字符,可以运行的!并进行nasm为二进制文件,如下"test.asm" 该段汇编主 ...

  5. mybatis源码解析3---XMLConfigBuilder解析

    1.XMLConfigBuilder XMLConfigBuilder类位于Mybatis包的org.apache.ibatis.builder.xml目录下,继承于BaseBuilder类,关于Ba ...

  6. jenkins1

    持续集成工具: Jenkins  和 Hudson是同源的. 甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目. Jenkins:由大部分原始开发人员组成,Hudson:由甲骨文公司继续管理 ...

  7. 和風いろはちゃんイージー / Iroha and Haiku (ABC Edition) (水水)

    题目链接:http://abc042.contest.atcoder.jp/tasks/abc042_a Time limit : 2sec / Memory limit : 256MB Score ...

  8. SQL Server双机热备之后项目的FailOver自动连接

    SQL Server配置数据库镜像后,可能有朋友们会比较有疑惑,你一下搞两个数据库出来,他们的ip地址都不一样,到时候数据库切换过去了,我的数据库的连接字符串可如何是好?难道还得在代码中去控制是连接哪 ...

  9. php学习路线(转)

    作者:Summer链接:https://www.zhihu.com/question/20034403/answer/135433912来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  10. 利用webpack手动构建vue工程

    一 创建一个文件夹,在文件夹中打开命令行执行:$npm install 创建一个package文件 ,可以先忽略作者等信息: 二 安装webpack依赖包(根据需要安装)     //全局安装     ...