复制集的特点

 
数据一致性
  主是唯一的,但不是固定的  没有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. electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google JavaScript Style Guide代码规范

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(番外篇一): 开发环境及插件, VSCode调试, ESLint + Google ...

  2. maven常用的远程仓库地址

    <mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>ht ...

  3. 针对MySQL的MVCC多版本并发控制的一些总结

    MVCC MVCC细节太多,我直接备忘一下总结: MVCC就是通过事务的ID与行数据的版本(修改事务的ID)进行比较(通过redo log可以回溯版本)得出哪些版本的行数据可见和不可见而实现的事务隔离 ...

  4. flutter 与 android 混合开发

    现有的混合开发方式,都是存flutter项目在android系统或者iOS上面跑. 但是,实际情况是,我们需要在一个成熟的native项目上面,跑几个flutter页面,逐步的进行flutter的融合 ...

  5. 《Kubernetes权威指南》01_Kubernetes入门——Kubernetes 是什么

    01_Kubernetes入门 li {list-style-type:decimal;}.wiz-editor-body ol.wiz-list-level2 > li {list-style ...

  6. 容器技术与docker

    名词介绍 IaaS:基础设施即服务,要搭建上层数据应用,先得通过互联网获得基础性设施服务 PaaS:平台即服务,搭建平台,集成应用产品,整合起来提供服务 SaaS:软件即服务,通过网络提供程序应用类服 ...

  7. oracle问题之数据库恢复(三)

    可能很多人在做数据库恢复时,都遇到过如下错误: SQL> recover database; ORA: recovery session canceled due to errors ORA: ...

  8. springcloud 依赖版本问题

    SpringCloud 版本: 版本名称 版本 Finchley snapshot版 Edgware snapshot版 Dalston SR1 当前最新稳定版本 Camden SR7 稳定版本 Br ...

  9. JVM 面试题汇总

    JVM 面试题汇总 1.什么是 JVM?它有什么作用? 答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平 ...

  10. 4、Oracle 数据库 startup 报错:ORA-27102: out of memory

    1.数据库启动报错: ORA-: out of memory SQL> startup pfile='/db/oracle/init.ora'; ORA-: out of memory Linu ...