您当前的位置: 首页 >  mongodb

21 MongoDB高级 - 复制(副本集)

杨林伟 发布时间:2019-08-26 19:15:34 ,浏览量:2

什么是复制
  • 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性
  • 复制还允许从硬件故障和服务中断中恢复数据
为什么要复制
  • 数据备份
  • 数据灾难恢复
  • 读写分离
  • 高(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            
关注
打赏
1688896170
查看更多评论
0.0832s