当前位置: 首页 > news >正文

NoSQL实战(MongoDB搭建主从复制)

什么是复制集?

MongoDB复制是将数据同步到多个服务器的过程;

复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性;

复制集还允许您从硬件故障和服务中断中恢复数据。

  •  保障数据的安全性
  •  数据高可用性 (24*7)
  • 灾难恢复
  • 无需停机维护(如备份,重建索引,压缩)
  • 分布式读取数据
  • 副本集对应用层是透明的

MongoDB复制集的工作原理

1. mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

2. mongodb各个节点常见的搭配方式为:一主一从、一主多从。

3. 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

复制集的特点:

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

 安装部署

配置MongoDByum源:

[root@localhost ~]# vim /etc/yum.repos.d/mongodb.repo[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc安装
[root@localhost ~]# yum install -y mongodb-enterprise

第一步:修改mongod配置文件(所有服务器都需要操作)

修改配置,启动两台机器mongod服务端:
[root@localhost ~]# vim /etc/mongod.conf 
bindIp: 0.0.0.0 #监听网卡
#需要增加的内容即复制集设置中的内容
repliocation:oplogSizeMB: 1024replSetName: myRS参数说明:replication.oplogSizeMB  数字,复制操作日志的最大大小(M)eplication.replSetName  字符,作为其mongod部分副本集的名称,副本集中的所有主机都必须具有相同的名称

第二步:重新启动mongodb服务(所有服务器都需要操作)

[root@localhost ~]# systemctl restart mongod

 第三步:在mongodb主服务器(192.168.150.14)运行命令,启动复制集

#进入mongo命令行
mongo
#shell内输入
MongoDB Enterprise > use admin
switched to db admin
#查看当前的ReplSet的状态
MongoDB Enterprise > rs.status()#初始化ReplSet复制集
MongoDB Enterprise > rs.initiate({_id:'myRS',members:[{_id:1,host:'192.168.150.14:27017'}]})

第四步:复制集群增加其他服务器

MongoDB Enterprise myRS:PRIMARY> rs.add("192.168.150.15:27017");
MongoDB Enterprise myRS:PRIMARY> rs.status()

第五步:测试数据复制集效果,在主节点上插入数据测试

MongoDB Enterprise myRS:PRIMARY> use test
switched to db test
MongoDB Enterprise myRS:PRIMARY> for(var i =0; i <4; i ++){db.user.insert({userName:'my'+i,age:i})}

查看数据集,两个数据库都有数据,复制数据功能已经运行成功!!

MongoDB Enterprise myRS:PRIMARY> db.getCollection('user').find({})
MongoDB Enterprise myRS:SECONDARY> rs.slaveOk();

 第六步:如主节点掉线,是否会故障转移

现在是
192.168.150.14 主
192.168.150.15 副
192.168.150.16 副模拟关闭主节点,在主节点,使用db.shutdownServer()命令
MongoDB Enterprise myRS:PRIMARY> use admin
switched to db admin
MongoDB Enterprise myRS:PRIMARY> db.shutdownServer()

在两个副节点查看现时的状态,192.168.150.15变成了主节点,成功实现了故障转移!!

http://www.lryc.cn/news/364860.html

相关文章:

  • 【讯为Linux驱动开发】3.内核空间和用户空间
  • AI论文:一键生成论文的高效工具
  • 申请医疗设备注册变更时,需要补充考虑网络安全的情况有哪些?
  • 打对钩的方式做人机验证(vue+javascript)
  • 可视化脚本用于使用MMDetection库进行图像的目标检测
  • React-组件通信
  • 低代码选型要注意什么问题?
  • hive切换spark引擎倒入数据乱码
  • fpga入门 串口定时1秒发送1字节
  • 总结一下自己,最近三年,我做了哪些工作
  • SpringCloud Gateway基础入门与使用实践总结
  • TensorBoard在pytorch训练过程中如何使用,及数据读取问题解决方法
  • 【Vue】普通组件的注册使用-全局注册
  • 爬虫之反爬思路与解决手段
  • 2.1.4 采用配置类与注解方式使用MyBatis
  • 微信小程序云开发实现利用云函数将数据库表的数据导出到excel中
  • python 字符串(str)、列表(list)、元组(tuple)、字典(dict)
  • 【源码】SpringBoot事务注册原理
  • 技巧:合并ZIP分卷压缩包
  • 数据挖掘 | 实验三 决策树分类算法
  • Python机器学习预测区间估计工具库之mapie使用详解
  • Linux基础指令磁盘管理002
  • Python怎么添加库:深入解析与操作指南
  • Python | 虚拟环境的增删改查
  • 【MySQL数据库】:MySQL内外连接
  • C# FTP/SFTP 详解及连接 FTP/SFTP 方式示例汇总
  • 二、【源码】实现映射器的注册和使用
  • Android Compose 十:常用组件列表 监听
  • Wireshark 如何查找包含特定数据的数据帧
  • 【深度学习入门篇一】阿里云服务器(不需要配环境直接上手跟学代码)