复制集的特点

 
数据一致性
  主是唯一的,但不是固定的  没有MySQL那样的双主结构
  大多数原则,集群存活节点小于等于二分之一时集群不可写,只可读。
  是否能选举出新的主节点,是由当前复制集成员存活量来决定的。
     
  从库无法写入 MySQL从库的readonly对具有super权限的用户无效
   
   自动容灾
 
传统主从 ---> only 选项来限制复制的数据
复制集 ---> 不支持只复制指定的库
 
3.0 版本前复制集参与选举的数据节点只能有7个
3.0 以上支持50个
 
# 创建配置文件
# 28001
cat >mongod28001.conf << EOF
port=28001 # 端口,默认端口27017
bind_ip=192.168.11.166 # 监听端口,默认允许所有
logpath=/usr/local/mongodb/log/28001.log # 日志
logappend=true  # 以追加的方式写入数据
dbpath=/usr/local/mongodb/data/28001 # 存放数据目录,默认/data/db/
pidfilepath=/var/run/mongd28001.pid # pid 文件
fork=true # 后台启动
#auth=true # 开启验证
oplogSize=102400 # 默认oplog 大小会使用可用磁盘空间的5%
replSet=hehe #复制集名称
EOF # 28002
cat >mongod28002.conf << EOF
port=28002
bind_ip=192.168.11.166
logpath=/usr/local/mongodb/log/28002.log
logappend=true
dbpath=/usr/local/mongodb/data/28002
pidfilepath=/var/run/mongd28002.pid
fork=true
#auth=true
oplogSize=102400
replSet=hehe #复制集名称
EOF # 28003
cat >mongod28003.conf << EOF
port=28003
bind_ip=192.168.11.166
logpath=/usr/local/mongodb/log/28003.log
logappend=true
dbpath=/usr/local/mongodb/data/28003
pidfilepath=/var/run/mongd28003.pid
fork=true
#auth=true
oplogSize=102400
replSet=hehe #复制集名称
EOF
 
启动实例:
mongod -f /usr/local/mongodb/conf/mongod28001.conf
mongod -f /usr/local/mongodb/conf/mongod28002.conf
mongod -f /usr/local/mongodb/conf/mongod28003.conf
 
# 初始化
mongo 192.168.11.166:28001/admin
# 定义配置文件,存放路径use local db.system.replset.find()
config = {
_id:"hehe", # 应该与配置文件中的replSet 一致
members:[
# priority优先级,此节点健康时候,优先为主节点
{_id:0,host:"192.168.11.166:28001",priority:5},
{_id:1,host:"192.168.11.166:28002"},
{_id:2,host:"192.168.11.166:28003"}
]
}
 
# 更改config,更改192.168.11.166:28003为投票节点
config.members[2] = {"_id":2,"host":"192.168.11.166:28003","arbiterOnly":true} # 执行初始化命令
rs.initiate(config) # 重新初始化,更改config时候执行,使用rs.reconfig() 会短暂断开
rs.reconfig(config) # 查看复制集状态
rs.status() # 从节点
rs.slaveOk(1) 或者rs.slaveOk(true) # 投票节点
# local 库 大小,mongodb 默认存放的物理文件local.*
# 默认为local.0 为64MB,命名空间为16MB ,
# 默认投票节点的local库大小为79-80MB # 查看复制集状态查看
db.printSlaveReplicationInfo()
rs.printSlaveReplicationInfo() # 查看状态详情
db.serverStatus().repl() # 查看oplog状态
rs.printReplicationInfo()

MongoDB 复本集搭建的更多相关文章

  1. MongoDB副本集搭建及备份恢复

    一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...

  2. mongodb副本集搭建过程中的问题和解决技巧

    在我以往的认知中,一个系统一旦正式上线,多半不会轻易的迁移服务器,尤其是那种涉及到多个关联应用,涉及到多台硬件服务器的系统,因为这种迁移将是牵一发而动全身的. 但是,却仍然有这种情况存在,就如我这几天 ...

  3. windows版本 MongoDB副本集搭建及开启身份验证

    ------------恢复内容开始------------ ------------恢复内容开始------------ MongoDB副本集搭建 我搭建的是一个主节点,两个副节点 构建目录结构如下 ...

  4. MongoDB 副本集搭建

    搭建mongodb副本集 [root@ mongodb]# cd /u02 [root@ u02]# mkdir -p mongodb/data_2777 [root@ u02]# mkdir -p ...

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

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

  6. Mongodb副本集搭建经验

    一.环境配置经验 1.一般安装的副本集的时候,主实例可以有数据库和用户:从实例不能.仲裁机不能有任何数据库包括用户 2.搭建副本集的时候Host使用外网IP,否则使用Mongodb VUE 1.6.9 ...

  7. mongodb分片集搭建

    拓扑图如下: 从图中可以看到有四个组件:mongos.config server.shard.replica set. mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要 ...

  8. MongoDB 副本集搭建 & 副本集扩容

    副本集的搭建 创建多实例目录 [root@redis03 ~]# mkdir /server/mongodb/2801{7,8,9}/{conf,logs,pid,data} -p 编辑多实例配置文件 ...

  9. mongodb复制集搭建

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

随机推荐

  1. 微信小程序点击图片放大

    WXML: <view class='imgList'> <view class='imgList-li' wx:for='{{imgArr}}'> <image cla ...

  2. Graph Transformer Networks 论文分享

    论文地址:https://arxiv.org/abs/1911.06455 实现代码地址:https://github.com/ seongjunyun/Graph_Transformer_Netwo ...

  3. Java 遍历集合时产生的ConcurrentModificationException异常

    前几天做Java实验的时候,打算用foreach遍历一个ArrayList集合,并且当集合中的某个元素符合某个值时删除这个元素.写完运行时抛出了ConcurrentModificationExcept ...

  4. Replacing the deprecated Java JPEG classes for Java 7

    [src: https://blog.idrsolutions.com/2012/05/replacing-the-deprecated-java-jpeg-classes-for-java-7/] ...

  5. 2.Scanner的进阶使用

    package com.duan.scanner; import java.util.Scanner; public class Demo04 { public static void main(St ...

  6. scikit-learn基础

    一.scikit-learn基础 sklearn.ensemble模块有两种基于决策树的算法----随机森林和极端随机树

  7. 团队项目-Beta冲刺2

    博客介绍 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业要求在哪里 https://w ...

  8. 异想家Golang学习笔记

    1. 简介 官网:https://golang.google.cn/ 2. 编译器.工具链 编译 go build .\demo.go 编译和执行指令合二为一 go run demo.go 3. 注释 ...

  9. 【学习笔记】Linux基础(零):预备知识

    学习笔记(连载)之Linux系列 Note:本学习笔记源自<鸟哥的Linux私房菜(基础学习篇)>一书,为此书重要内容的摘要和总结,对于一些常识性的知识不再归纳 新型冠状病毒引发的肺炎战& ...

  10. STL中的vector 和list

    参考书目:visual c++ 入门经典 第七版 Ivor Horton著 第十章 认识两个容器:vector和list 容器:是STL(Standard Template Library 标准模板库 ...