说明

本文创建的集群的名字为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.confmongodb3.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. Oracle TNS-01190: The user is not authorized to execute the requested listener command

    今天,在玩 lsnrctl命令,是为了了解Oracle的一些配置. 当执行 show inbound_connect_timeout 命令之后,提示了错误信息: TNS-01190: The user ...

  2. (转)yuicompressor 与 maven结合,打包,压缩js,css (一)

    js,css代码压缩 web站点需要对js,css代码进行压缩,打包,下面是利用maven进行打包压缩的配置 将压缩后的代码打入到war包中,并且压缩后的js,css文件名不变 <plugins ...

  3. [5]传奇3服务器源码分析一GameServer

    1. 2. 留存 服务端下载地址: 点击这里

  4. Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关

    Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关 那个上传图片太麻烦了,发布到百度文库了 http://wenku.baidu.com/view/b38ae8 ...

  5. JavaScript循环和数组常用操作

    while循环 语法: do while循环 语法:do{循环体}while(条件表达式); 特点:do while循环不管条件是否成立,无论如何循环体都会执行一次. 使用场合:用户输入密码,如果密码 ...

  6. Yii2 Gridview查询关联筛选

  7. CSS选择符-----伪类选择符

    Element:hover E:hover { sRules }  设置元素在其鼠标悬停时的样式 <!DOCTYPE html> <html> <head> < ...

  8. codeoforces 932A

    题意: A和B在玩一个游戏,首先有一个X0 >= 3,之后选择一个小于X0的质数p,然后在找一个最小的X1 >= X0,并且p可以整除X1:之后再选择一个小于X1的质数p,然后再找一个最小 ...

  9. CocoaPod 使用(I)

    1. 添加一个 Podfile 文件 在终端先找到你要放入 Podfile 的文件路径: cd 文件路径 cd /Users/XXX/Desktop/RAC 然后敲入: pod init 就会给你建立 ...

  10. python 什么是位置参数?

    位置参数是必选参数 ----不能不传, ----不能传一部分, ---必须按顺序传 ----必须传全部参数