可参考官网教程

复制集增加了数据的冗余同时也提高了mongodb的可靠性,相比传统的主从架构,mongodb具有自动容灾的特性,即主库挂掉后会自动从剩下的从库中选举出一个节点做为主库(不需要人工干预),继续为客户端提供服务。

目前为止,复制集最多只能包含12个节点,但只能有7个投票节点(vote不为0的节点,非arbiter)。

注意:复制集要想正常工作,必须满足二分之一原则,否则所有节点都将降级为从节点,复制集将不能提供写服务。

复制集节点通常部署奇数个,若只有偶数个节点,可添加一个arbiter。

主节点:为客户端提供服务,进行数据读写

从节点:默认情况下,从节点不提供读写服务,若要查看从库内容,需先执行:rs.slaveOk(),主要用于读取主节点opLog,同步主节点数据,起到数据备份的作用,当主节点异常,会进行自动选举,在剩下的从节点中选举出一个成为主节点继续提供服务。

投票节点(arbiter): 不存储数据,主要用于选举是投票。

下面开始接受复制集搭建步骤:

此处假设我有三台服务器,分别为:192.168.103.54, 192.168.103.56, 192.168.103.57

1、在三台服务器上分别安装mongdb

2、修改各mongdb的配置文件:/etc/mongod.conf,执行如下指令

vi /etc/mongod.conf

此处主要修改监听网卡(bindIp)和复制集名称(replSetName),修改后配置文件如下

# mongod.conf

# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log # Where and how to store data.
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile # network interfaces
net:
port:
bindIp: 127.0.0.1,192.168.103.54 # Listen to local interface only, comment to listen on all interfaces. #security: #operationProfiling: replication:
replSetName: teejo #sharding: ## Enterprise-Only Options #auditLog: #snmp:

注意:复制集中节点复制集名称必须一致,此处为teejo

3、初始化复制集

启动三台服务器上的mongodb,连接上其中一台,执行如下操作

rs.initiate( {
_id : "teejo", //复制集名称,必须和配置文件中保持一致
members: [
{ _id: , host: "192.168.103.54:27017" },
{ _id: , host: "192.168.103.56:27017" },
{ _id: , host: "192.168.103.57:27017" }
]
})

到此,复制集配置完成。

下面介绍几个复制集状态查看指令

rs.conf()             //输出复制集配置情况,可查看复制集包含的节点,以及各几点配置参数
rs.status() //查看复制集运行状态,可从中看出那个是主那个是从

扩展

当只有单机单实例时也可以以复制集启动,这样做的好处是方便日后扩展

假设我只有服务器:192.168.103.54

执行如下初始化,使其以复制集启动:

rs.initiate( {
_id : "teejo",
members: [
{ _id: , host: "192.168.103.54:27017" }
]
})

之后我又添置了服务器:192.168.103.56,192.168.103.57,将其添加到复制集

执行:

rs.add("192.168.103.56:27017")
rs.add("192.168.103.57:27017")

执行:rs.conf(),可查看到复制集节点添加成功,

若是添加投票节点,调用方法:rs.addArb()

mongdb复制集搭建的更多相关文章

  1. MongoDB之 复制集搭建

    MongoDB复制集搭建步骤,本次搭建使用3台机器,一个是主节点,一个是从节点,一个是仲裁者. 主节点负责与前台客户端进行数据读写交互,从节点只负责容灾,构建高可用,冗余备份.仲裁者的作用是当主节点宕 ...

  2. 【Mongodb】 可复制集搭建

    可复制集 replica set 概念图 可复制集需要至少3个以上的mongodb节点,其中有一个主节点promary,其余的为副本节点secondary 可复制集有三个角色: 主要成员(Primar ...

  3. MongoDB复制集搭建(3.4.17版)

    ==版本== mongodb-linux-x86_64-rhel70-3.4.17.tgz ==准备== 3个节点,我这里的IP及hostname分别是: 10.11.2.52 dscn49 10.1 ...

  4. mongodb复制集搭建

    注:mongodb当前版本是3.4.3 1.准备三个虚拟机做服务器 192.168.168.129:27017 192.168.168.130:27017 192.168.168.131:27017 ...

  5. mongdb 复制集

    步骤: 一.启动三台进程 1../bin/mongod --dbpath=/home/work/app/mongodb/mongodb-linux-x86_64-amazon-3.2.7/data/r ...

  6. 利用Mongodb的复制集搭建高可用分片,Replica Sets + Sharding的搭建过程

    参考资料 reference:  http://mongodb.blog.51cto.com/1071559/740131  http://docs.mongodb.org/manual/tutori ...

  7. mongodb 复制集

    mongodb 复制集 复制集简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写 ...

  8. MongoDB复制集原理、环境配置及基本测试详解

    一.MongoDB复制集概述 MongoDB复制集实现了冗余备份和故障转移两大功能,这样能保证数据库的高可用性.在生产环境,复制集至少包括三个节点,其中一个必须为主节点,一个从节点,一个仲裁节点.其中 ...

  9. MongoDB复制集技术

    复制集搭建 没毛病: https://www.cnblogs.com/nicolegxt/p/6841442.html?utm_source=itdadao&utm_medium=referr ...

随机推荐

  1. UVa 615 - Is It A Tree?

    题目:给你一些有向边(端点,长度为1).推断给定的图是否是一棵树. 分析:图论.并查集.树是一个全部点都连接的有向无环图(不连接的是森林). 依照树的定义推断是否有环就可以,有环分成两种: 1.链状环 ...

  2. vc6下unicode支持

    最近在研究一个串口程序,要启用unicode支持,发现还挺麻烦的. VC6.0设定UNICODE编译环境 VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写 ...

  3. php.in

    [PHP] ;;;;;;;;;;; ; WARNING ; ;;;;;;;;;;; ; This is the default settings file for new PHP installati ...

  4. Java开发岗位面试题归类---怎么好好的准备面试,也算是发展学习方向

    转载:http://blog.csdn.net/qq_27093465/article/details/52181860 一.Java基础 1. String类为什么是final的. 自己找的参考答案 ...

  5. 【转】Android一些知识点汇总

    Android常用知识点总汇 一.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由. 如果在你的android系统上安装了多种浏览器,能否指定某浏览器访问指定页面?答案当然是:肯定的. ...

  6. java小游戏代码

    一. 需求分析 曾几何时,游戏是海洛因的代名词,让人与玩物丧志联系在一起.一度遭到社会反感和家长抵制.可是.随着互联网的发展,和游戏潜在优点被发现.游戏的价值開始逐渐被社会认可,人们開始接受.认识和了 ...

  7. iOS12适配指南

    1.重复文件报错 build Phases-> 删除多余的info.plist 2.library not found for -lstdc++ 苹果在XCode10和iOS12中移除了libs ...

  8. DataBase 之 数据库设计六大范式

    范式是符合某一种级别的关系模式的集合.关系数据库中的关系必须满足一定的要求,即满足不同的范式. 目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).第四范式(4NF) ...

  9. 史上最牛逼的纯CSS实现tab选项卡,闪瞎你的狗眼

    下载地址:http://download.csdn.net/detail/cometwo/9393614 html文件 <!DOCTYPE html> <html> <h ...

  10. django2自动发现项目中的url

    根据路飞学城luffycity.com 的crm项目修改的 1 url入口:rbac/urls.py urlpatterns = [ ... # 批量操作权限 re_path(r'^multi/per ...