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变成了主节点,成功实现了故障转移!!
相关文章:
NoSQL实战(MongoDB搭建主从复制)
什么是复制集? MongoDB复制是将数据同步到多个服务器的过程; 复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性; 复制集还允许您从硬件故障和服务中断中恢复数据。 保障数据的安全性 数据高可用性 (2…...
【讯为Linux驱动开发】3.内核空间和用户空间
【问】内存空间的组成部分?? 内存空间分为内核空间和用户空间 1.内核空间控制硬件资源,提供系统调用接口,保护系统自身安全稳定 2.用户空间实现业务逻辑 【问】如何进入内核空间使用硬件资源? 1.系统调用 2.软中断 3.…...
AI论文:一键生成论文的高效工具
说到这个问题,那真的得看你对“靠谱”的定义是怎样的啦? 众所周知,写论文是一项极其耗时间的事情,从开始的选题到文献资料搜索查阅,大纲整理等等一大堆的繁杂工作是极艰辛的。用AI写论文就不一样了,自动化…...
申请医疗设备注册变更时,需要补充考虑网络安全的情况有哪些?
在申请医疗器械设备注册变更时,需要补充网络安全的情况主要包括以下几点: 网络安全功能更新:如果医疗器械的自研软件发生网络安全功能更新,或者合并网络安全补丁更新的情形,需要单独提交一份自研软件网络安全功能更新…...
打对钩的方式做人机验证(vue+javascript)
要实现一个通过打对钩方式的人机验证,并且让它不容易被破解,可以考虑以下几点: 动态生成选项和题目:每次生成的验证选项和题目都不一样,防止简单的脚本通过固定的答案绕过验证。使用图像和文字混合验证:增…...
可视化脚本用于使用MMDetection库进行图像的目标检测
# Copyright (c) OpenMMLab. All rights reserved. import asyncio from argparse import ArgumentParserfrom mmdet.apis import (async_inference_detector, inference_detector,init_detector, show_result_pyplot) import denseclip# 解析命令行参数 def parse_args():pars…...
React-组件通信
组件通信 概念:组件通信就是组件之间的数据传递,根据组件嵌套关系的不同,有不同的通信方法 父传子 基础实现 实现步骤: 1.父组件传递数据-在子组件标签上绑定属性 2.子组件接收数据-子组件通过props参数接收数据 props说明 1.…...
低代码选型要注意什么问题?
低代码选型时,确实需要从多个角度综合考虑,以下是根据您给出的角度进行的分析和建议: 公司的人才资源: 评估团队中是否有具备编程能力的开发人员,以确保能够充分利用低代码平台的高级功能和进行必要的定制开发。考察实…...
fpga入门 串口定时1秒发送1字节
一、 程序说明 FPGA通过串口定时发送数据,每秒发送1字节,数据不断自增 参考小梅哥教程 二、 uart_tx.v timescale 1ns / 1psmodule uart_tx(input wire sclk,input wire rst_n,output reg uart_tx);parameter …...
总结一下自己,最近三年,我做了哪些工作
简单总结下吧,我算是业务架构师,确实对得起这个名字,经常冲在一线,业务和架构相关的东西都有做,系统比较复杂,不过逐步了解谁都会熟悉的 下面简单列一列我这三年的工作情况吧,也算是给自己一个交…...
SpringCloud Gateway基础入门与使用实践总结
官网文档:点击查看官网文档 Cloud全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关。但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是SpringCloud Gateway一句话…...
TensorBoard在pytorch训练过程中如何使用,及数据读取问题解决方法
TensorBoard 模块导入日志记录文件的创建训练中如何写入数据如何提取保存的数据调用TensorBoard面板可能会遇到的问题 模块导入 首先从torch中导入tensorboard的SummaryWriter日志记录模块 from torch.utils.tensorboard import SummaryWriter然后导入要用到的os库࿰…...
【Vue】普通组件的注册使用-全局注册
文章目录 一、使用步骤二、练习 一、使用步骤 步骤 创建.vue组件(三个组成部分)main.js中进行全局注册 使用方式 当成HTML标签直接使用 <组件名></组件名> 注意 组件名规范 —> 大驼峰命名法, 如 HmHeader 技巧…...
爬虫之反爬思路与解决手段
阅读时间建议:4分钟 本篇概念比较多,嗯。。 0x01 反爬思路与解决手段 1、服务器反爬虫的原因 因为爬虫的访问次数高,浪费资源,公司资源被批量抓走,丧失竞争力,同时也是法律的灰色地带。 2、服务器反什么…...
2.1.4 采用配置类与注解方式使用MyBatis
实战概述:采用配置类与注解方式使用MyBatis 创建MyBatis配置类 在net.huawei.mybatis.config包中创建MyBatisConfig类,用于配置MyBatis核心组件,包括数据源、事务工厂和环境设置。 配置数据源和事务 使用PooledDataSource配置MySQL数据库连接…...
微信小程序云开发实现利用云函数将数据库表的数据导出到excel中
实现目标 将所有订单信息导出到excel表格中 思路 1、在页面中bindtap绑定一个导出点击事件daochu() 2、先获取所有订单信息,并将数据添加到List数组中 3、传入以List数组作为参数,调用get_excel云函数 4、get_excel云函数利用node-xlsx第三方库&#…...
python 字符串(str)、列表(list)、元组(tuple)、字典(dict)
学习目标: 1:能够知道如何定义一个字符串; [重点] 使用双引号引起来: 变量名 "xxxx" 2:能够知道切片的语法格式; [重点] [起始: 结束] 3:掌握如何定义一个列表; [重点] 使用[ ]引起来: 变量名 [xx,xx,...] 4:能够说出4个列表相关的方法; [了解] ap…...
【源码】SpringBoot事务注册原理
前言 对于数据库的操作,可能存在脏读、不可重复读、幻读等问题,从而引入了事务的概念。 事务 1.1 事务的定义 事务是指在数据库管理系统中,一系列紧密相关的操作序列,这些操作作为一个单一的工作单元执行。事务的特点是要么全…...
技巧:合并ZIP分卷压缩包
如果ZIP压缩文件文件体积过大,大家可能会选择“分卷压缩”来压缩ZIP文件,那么,如何合并zip分卷压缩包呢?今天我们分享两个ZIP分卷压缩包合并的方法给大家。 方法一: 我们可以将分卷压缩包,通过解压的方式…...
开源工具提升下载效率:多网盘直链获取方案实现下载效率提升60%
开源工具提升下载效率:多网盘直链获取方案实现下载效率提升60% 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...
GigE Vision 多相机同步终极检查清单(可直接用于项目部署)
GigE Vision 多相机同步终极检查清单(可直接用于项目部署)📋 GigE Vision 多相机同步终极检查清单一、网络基础设施二、PTP 配置三、硬件触发四、相机参数一致性五、软件数据处理六、验证手段📋 GigE Vision 多相机同步终极检查清…...
Hunyuan-OCR-WEBUI效果实测:复杂表格识别与字段抽取案例展示
Hunyuan-OCR-WEBUI效果实测:复杂表格识别与字段抽取案例展示 1. 引言 在数字化转型浪潮中,纸质文档的电子化处理一直是企业办公自动化的关键环节。传统OCR技术虽然能够完成基本的文字识别,但在面对复杂表格、多语言混合、低质量扫描件等实际…...
Emotion2Vec+ Large多语种支持实测:中文英文情感识别效果对比
Emotion2Vec Large多语种支持实测:中文英文情感识别效果对比 1. 引言 语音情感识别技术正在改变我们与机器交互的方式。想象一下,当你在电话客服中表达不满时,系统能立即识别你的愤怒情绪并转接高级客服;当你在语言学习中发音时…...
写字楼外卖管理新工具:爽提智能外卖柜
午间十二点,往往是城市写字楼最喧嚣的时刻。外卖骑手拎着餐盒涌入大堂,电梯口排起长队。前台桌面上堆满了五颜六色的外卖袋,餐盒越堆越高,错拿、丢失、凉透——几乎成为每天必上演的曲目。这不是某个写字楼的个别现象,…...
像素剧本圣殿步骤详解:如何导出带角色关系图谱的交互式剧本HTML文档
像素剧本圣殿步骤详解:如何导出带角色关系图谱的交互式剧本HTML文档 1. 工具介绍与环境准备 像素剧本圣殿(Pixel Script Temple)是基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它不仅具备强大的剧本生成能力,还能将创…...
农产投入线上管理|基于springboot + vue农产投入线上管理系统(源码+数据库+文档)
农产投入线上管理系统 目录 基于springboot vue农产投入线上管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue农产投入线上管理系统 一、前…...
OpenClaw健康助手:Qwen3-32B分析智能穿戴数据生成周报
OpenClaw健康助手:Qwen3-32B分析智能穿戴数据生成周报 1. 为什么需要本地化健康数据分析 去年我开始使用智能手环监测睡眠和运动数据,但很快发现一个问题:所有数据都要上传到厂商云端才能生成报告。作为医疗行业从业者,我深知健…...
AI 模型推理自动化部署方案实践
AI模型推理自动化部署方案实践 随着人工智能技术的快速发展,AI模型的训练和推理已成为企业智能化转型的核心环节。模型从开发到生产环境的部署往往面临效率低、运维复杂等问题。自动化部署方案能够显著提升推理服务的稳定性和可扩展性,成为企业降本增效…...
【2026年最新600套毕设项目分享】springboot实验室预约系统(14320)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
