mongodb 复制(副本集)

复制(副本集)

什么是复制

  • 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性
  • 复制还允许从硬件故障和服务中断中恢复数据

为什么要复制

  • 数据备份
  • 数据灾难恢复
  • 读写分离
  • 高(24* 7)数据可用性
  • 无宕机维护
  • 副本集对应用程序是透明

复制的工作原理

  • 复制至少需要两个节点A、B...
  • A是主节点,负责处理客户端请求
  • 其余的都是从节点,负责复制主节点上的数据
  • 节点常见的搭配方式为:一主一从、一主多从
  • 主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致
  • 主节点与从节点进行数据交互保障数据的一致性

复制的特点

  • N 个节点的集群
  • 任何节点可作为主节点
  • 所有写入操作都在主节点上
  • 自动故障转移
  • 自动恢复

设置复制节点

  • 接下来的操作需要打开多个终端窗口,而且可能会连接多台ubuntu主机,会显得有些乱,建议在xshell中实现
  • step1:创建数据库目录t1、t2
  • 在Desktop目录下演示,其它目录也可以,注意权限即可
mkdir t1
mkdir t2
  • step2:使用如下格式启动mongod,注意replSet的名称是一致的
mongod --bind_ip 192.168.196.128 --port 27017 --dbpath ~/Desktop/t1 --replSet rs0
mongod --bind_ip 192.168.196.128 --port 27018 --dbpath ~/Desktop/t2 --replSet rs0
  • step3:连接主服务器,此处设置192.168.196.128:27017为主服务器
mongo --host 192.168.196.128 --port 27017
  • step4:初始化
rs.initiate()
  • 初始化完成后,提示符如下图:

  • step5:查看当前状态
rs.status()
  • 当前状态如下图:

  • step6:添加复本集
rs.add(‘192.168.196.128:27018‘)
  • step7:复本集添加成功后,当前状态如下图:

  • step8:连接第二个mongo服务
mongo --host 192.168.196.128 --port 27018
  • 连接成功后,提示符如下图:

  • step9:向主服务器中插入数据
use test1
for(i=0;i<10;i++){db.t1.insert({_id:i})}
db.t1.find()
  • step10:在从服务器中插查询
  • 说明:如果在从服务器上进行读操作,需要设置rs.slaveOk()
rs.slaveOk()
db.t1.find()

其它说明

  • 删除从节点
rs.remove(‘192.168.196.128:27018‘)
  • 关闭主服务器后,再重新启动,会发现原来的从服务器变为了从服务器,新启动的服务器(原来的从服务器)变为了从服务器
时间: 2024-08-24 17:06:20

mongodb 复制(副本集)的相关文章

MongoDB 复制(副本集)

MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从硬件故障和服务中断中恢复数据. 什么是复制? 保障数据的安全性 数据高可用性 (24*7) 灾难恢复 无需停机维护(如备份,重建索引,压缩) 分布式读取数据 MongoDB复制原理 mongodb的复制至少需要两个节点.其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据. mongodb各个节点常见的

MongoDB 搭建副本集

副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成.通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本.通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移. 一,MongoDB版本和环境 在Windows上创建包含三个节点的副本集,使用的环境: 数据库:MongoDB 版本 3.2.9 Server

MongoDb的副本集搭建教程(个人操作笔记)

很多公司都在用MongoDb ,一直没有时间研究,最近好好的整了一下,做下笔记,直接上操作步骤,关于Mongodb的理论知识可以搜索其他资料,也可以联系我索取 mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式,主从模式其实就是一个单副本的应用,没有很好的扩展性和容错性.而副本集具有多个副本保证了容错性,就算一个副本挂掉了还有很多副本存在,并且解决了上面 第一个问题“主节点挂掉了,整个集群内会自动切换”.难怪mongoDB官方推荐使用这种模式.我们来看看mongoDB副本集的

MongoDB——主从复制&amp;副本集

前面我说到了,MongoDB数据库支持服务器之间的数据复制.支持主从模式及服务器之间的相互复制.目的当然是实现负载均衡与故障恢复.Mongo中内置了两种技术:主从复制.副本集.下面就简单介绍这两种模式的配置. 一.    主从复制 主从复制是一个简单的数据库同步备份的集群技术.模型如下: 需要注意: 在数据库集群中要明确的知道谁是主服务器,主服务器只有一台. 从服务器要知道自己的数据源,也就是自己的主服务器是谁. --master用来明确主服务器,--slave和-source来控制从服务器.

MongoDB 使用副本集备份添加新的辅助副本成员

问题描述: 在生产环境中,当辅助副本成员的读压力很大时,可通过添加新的辅助副本成员来缓解压力. 为了能实现主副本成员不停机,并减轻主副本成员的压力,可在辅助副本成员上mongodump备份数据: 为了实现新的辅助副本成员的快速恢复,可直接通过以NFS方式挂载辅助副本成员到做备份操作的辅助副本成员上: 为了保证数据的一致性,在mongodump数据的时候使用-oplog参数,mongorestore时使用-oplogReplay参数: 为了满足后期空间的扩容,通过-directoryperdb参数

mongodb之副本集相关问题!

副本集相关: 1.搭建副本集. (1)为副本集中的副本配置以下参数(这些参数必须配置的),之后重启副本. replSet=rs0         # 副本的名称 oplogSize=1024     # oplog的初始大小 keyFile=/home/mongodb261/data38017/mongodb-keyfile  #  keyfile文件的路径,用户副本之间通信. (2)登陆primary,初始化副本. rsconf={"_id":"rs0",&quo

MongoDB创建副本集

CentOS6平台安装MongoDB3.2副本集 一,3台机器全部安装部署mongod 1,下载安装包,并解压tgz curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.10.tgz tar xf mongodb-linux-x86_64-3.2.10.tgz mv mongodb-linux-x86_64-3.2.10 /usr/local/mongodb 2,,可执行文件添加到 PATH 路径中: export 

Mongodb分片副本集集群搭建

一.环境准备 1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0) 序号 主机名 IP 1 DB_01 10.202.105.52 2 DB_02 10.202.105.53 3 DB_03 10.202.105.54 4 CNSZ17PL0897 10.117.176.215(暂时待定备份监控机) 服务器52(DB_01) 服务器53(DB_02) 服务器54(DB_03) mongos mongos mongos config server config server confi

mongoDB伪副本集集群搭建

参考文章:http://www.cnblogs.com/kevingrace/p/5685486.html下载mongodb并解压 https://www.mongodb.com/download-center/enterprise/releases tar -zxvf mongodb-linux-x86_64-enterprise-rhel70-3.6.5.tgz 重命名 mv mongodb-linux-x86_64-enterprise-rhel70-3.6.5 mongo1 设置环境变量

mongodb复制+分片集原理

----------------------------------------复制集---------------------------------------- 一.复制集概述: 组成: Mongodb复制集(副本集replica set)由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary通过oplog来同步Primary的数据,保证主节点和从节点数据的一致性,