MongoDB主从

mongodb的集群搭建方式主要有三种,主从模式,Replica set模式,sharding模式, 三种模式各有优劣,适用于不同的场合,属Replica set应用最为广泛,主从模式现在用的较少,sharding模式最为完备,但配置维护较为复杂。本文为Replica Set模式。

MongoDB节点

mark

主节点(Primary)

在复制集中,主节点是唯一能够接收写请求的节点。MongoDB在主节点进行写操作,并将这些操作记录到主节点的oplog中。而从节点将会从oplog复制到其本机,并将这些操作应用到自己的数据集上。(复制集最多只能拥有一个主节点)

从节点(Secondaries)

从节点通过应用主节点传来的数据变动操作来保持其数据集与主节点一致。从节点也可以通过增加额外参数配置来对应特殊需求。例如,从节点可以是non-voting或是priority 0.

仲裁节点(ARBITER)

仲裁节点即投票节点,其本身并不包含数据集,且也无法晋升为主节点。但是,旦当前的主节点不可用时,投票节点就会参与到新的主节点选举的投票中。仲裁节点使用最小的资源并且不要求硬件设备。投票节点的存在使得复制集可以以偶数个节点存在,而无需为复制集再新增节点 不要将投票节点运行在复制集的主节点或从节点机器上。 投票节点与其他 复制集节点的交流仅有:选举过程中的投票,心跳检测和配置数据。这些交互都是不加密的。

部署

各节点使用不同角色节点配置
172.18.169.38:27017(primary)
172.18.169.39:27017(secondary)
172.18.169.39:27018(arbiter)

主节点部署

  • 配置config.conf
bind_ip = 0.0.0.0
port = 27017
logpath = /data/mongodb/logs/mongodb.log
pidfilepath=/data/mongodb/mongodb.pid
dbpath=/data/mongodb
fork = true
logappend = true
  • 启动
./mongod -f config.conf --replSet rs0

从节点部署

  • 配置config.conf
bind_ip = 0.0.0.0
port = 27017  
logpath = /data/mongodb/logs/mongodb.log  
pidfilepath=/data/mongodb/mongodb.pid       
dbpath=/data/mongodb                                           
fork = true                                    
logappend = true
  • 启动
./mongod -f config.conf --replSet rs0

仲裁节点部署

  • 配置arbiter.conf
bind_ip = 0.0.0.0
port = 27018  
logpath = /data/arbiter/logs/mongodb.log  
pidfilepath=/data/arbiter/mongodb.pid       
dbpath=/data/arbiter                                            
fork = true                                    
logappend = true
  • 启动
./mongod -f arbiter.conf --replSet rs0

配置

主节点配置

mongo --port 27017
config={_id:"rs0", members:[{_id:0,host:"172.18.169.38:27017",priority:1}]}
rs.initiate(config)
rs.add("172.18.169.39:27017")
rs.add("172.18.169.39:27018")
rs.status()

从节点配置

mongo --port 27017
db.setSlaveOk()

验证

客户端下载:https://robomongo.org/

连接

mark

查看

mark
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,132评论 2 89
  • 主从复制:主节点写入数据,从通过读取主的oplog得到复制信息,开始复制数据并且将复制信息写入到自己的oplog。...
    米刀灵阅读 8,496评论 1 1
  • 概述 前序--聊聊数据库升级方案 一主一从 一主两从 一主一从一仲裁 本来是想用 MongoDB 的 Docker...
    zone7_阅读 9,068评论 0 2
  • 本文将介绍下mongodb主从配置及备份 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。...
    程序员同行者阅读 11,190评论 2 2
  • mongodb作为一个数据库与所有的数据库一样都面临一个问题:当只存在一个实例时,数据是不安全的,如果当前实例挂掉...
    jerrybw阅读 4,819评论 0 0