Mongodb oplog
在MongoDB复制集中,oplog信息存储在oplog.rs集合中。
oplog.rs集合是一个固定大小的集合(capped collection),它位于local数据库中。
当我们在源MongoDB实例上启用了复制(replication)功能,MongoDB会自动在local数据库中创建oplog.rs集合。此后,所有在该实例上的写操作都会生成对应的oplog记录,并插入到oplog.rs集合中。
从节点就可以通过tailing(尾随)这个oplog.rs集合来获得主节点的写操作记录,并在自己节点上重放这些操作,实现主从的数据同步。
oplog提供了数据库中的所有历史写操作的记录,这使得从节点可以随时通过读取oplog来与主节点的数据状态达到一致,无论从节点何时加入复制集。这使得MongoDB复制具有很强的容错能力。
oplog中的oplog记录按时间戳(ts)进行排序,从而保留了所有历史更新操作的完整顺序。
对于开启journaling的MongoDB,oplog与journal文件一起,可以用于进行点时间恢复(point in time recovery),将实例恢复到任意时间点的状态。
所以,oplog是MongoDB复制集工作的核心机制。它存储在local数据库的oplog.rs集合中,包含了数据库中全部历史写操作,是支持从节点与主节点数据同步的基础。
oplog是MongoDB复制集中的一个特殊的资源集合(capped collection),它存储了对数据库执行的所有更新操作的记录。oplog用来支持复制集中的数据同步。
oplog中的每个文档都代表数据库中的一个更新操作,并且包含以下字段:
- ts: 时间戳,记录操作的执行时间。
- h: 操作的散列值,用于确认操作的目标和值。
- v: 版本,格式是{主节点ID}{值递增},用于确认操作的顺序。
- op: 操作类型,可以是i(insert)、u(update)、d(delete)、c(db cmd)、n(no op)。
- i : 插入操作
- u : 更新操作
- d : 删除操作
- c : 命令操作(db cmd)
- n : 空操作 (当重复执行幂等操作时)
- o: 操作对象,对于更新和删除操作来说,这是被更新或删除的记录。对于指令操作,这是执行的命令对象。
- o2: 操作对象的新版本(如果有)。只有在更新操作中才包含此字段。
- ns: 被操作的命名空间,格式是db.collection。
- ui: 当op=i(insert)时,这个是_id的值。对其他操作来说,这个字段不存在。
例如,一个oplog文档可能如下:
{"ts" : Timestamp(1598584894, 1), "h" : NumberLong("6305925108597842513"),"v" : 2,"op" : "i", "ns" : "test.users","ui" : UUID("b3fe353c-97cb-40d8-a7f4-61324299246e"),"o" : { "_id" : UUID("b3fe353c-97cb-40d8-a7f4-61324299246e"),"name" : "John"}
}
这代表在test.users集合中插入了一条_id为b3fe353c-97cb-40d8-a7f4-61324299246e,name为John的记录。
oplog通过这种方式记录数据库的所有更新操作,复制集中的从节点可以通过读取oplog中的操作来与主节点同步数据,实现数据库的异步复制。
所以,oplog是MongoDB复制集工作的核心,它保存了全部历史更新操作,支持从节点与主节点的数据同步。我们在使用MongoDB时,也会经常手动读取oplog来做各种定制化的数据同步或消息订阅等工作。
相关文章:
Mongodb oplog
在MongoDB复制集中,oplog信息存储在oplog.rs集合中。 oplog.rs集合是一个固定大小的集合(capped collection),它位于local数据库中。 当我们在源MongoDB实例上启用了复制(replication)功能,MongoDB会自动在local数据库中创建oplog.rs集合。此后,所有在该实例上的写操作都会生…...
python基础篇: python字符串方法都有哪些?你知道多少?
❝ Python提供了丰富的字符串处理方法,可以方便地对字符串进行操作、处理和转换。在本文中,我们将介绍Python中常用的字符串方法。 ❞ python中字符串内置方法很多,可以通过dir()方式查看具体有哪些方法,下表是python字符串的全部…...
chmod 命令 (chmod 0660)
chmod的作用: 用于设置文件所有者和文件关联组的命令,就是控制用户的权限命令 注意事项: chown 需要超级用户 root 的权限才能执行此命令。 自己常用chmod 命令是 chmod 777 * 给所有文件权限 chmod 777 文件名 给单独文件权限 这个777 是怎么来的, 或者chmod 0660 这…...
Qt应用开发常用功能
Qt判断当前操作系统? #ifdef Q_OS_MAC //mac ... #endif#ifdef Q_OS_LINUX //linux ... #endif#ifdef Q_OS_WIN32 //win ... #endif#ifdef __arm__ //arm ... #endifQt实现应用程序关闭和重启? //关机按钮-点击槽函数 void SystemD::on_shutdownButton…...
麻了,部门新来的00后给我卷崩溃了...
今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…...
代码随想录算法训练营第56天|583. 两个字符串的删除操作,72. 编辑距离
代码随想录算法训练营第56天|583. 两个字符串的删除操作,72. 编辑距离 583. 两个字符串的删除操作72. 编辑距离 583. 两个字符串的删除操作 题目链接:583. 两个字符串的删除操作,难度:中等 【实现代码】 class Solution { publi…...
【嵌入式笔/面试】嵌入式软件基础题和真题总结——操作系统
在学习的时候找到几个十分好的工程和个人博客,先码一下,内容都摘自其中,有些重难点做了补充! 才鲸 / 嵌入式软件笔试题汇总 嵌入式与Linux那些事 阿秀的学习笔记 小林coding 百问网linux 嵌入式软件面试合集 2022年春招实习十四面…...
2023浙江省赛“信息安全管理与评估“--Web渗透测试(高职组)
2022全国职业技能大赛“信息安全管理与评估”(高职组)任务书 2022全国职业技能大赛“信息安全管理与评估”任务书第一阶段竞赛项目试题第二阶段竞赛项目试题第三阶段竞赛项目试题任务2:Web渗透测试2022全国职业技能大赛“信息安全管理与评估”任务书 第一阶段竞赛项目试题 …...
垃圾收集器面试总结(二)
G1 收集器 G1 (Garbage-First) 是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器。 以极高概率满足 GC 停顿时间要求的同时,还具备高吞吐量性能特征。 被视为 JDK1.7 中 HotSpot 虚拟机的一个重要进化特征。它具备以下特点: 并行与并发&am…...
语音交友app开发中的用户积分系统
引言 在当今数字时代,语音交友app已成为一种流行的社交工具。它们给用户提供了一个平台,在这里他们可以结交新朋友,分享他们的生活和信仰,并建立深厚的人际关系。然而,市场上存在大量的语音交友app,这使得…...
Nature:惊人的突破!科学家们成功破译人类嗅觉感应机制的奥秘!
加州大学旧金山分校(UCSF)的科学家们创造了第一张关于气味分子如何激活人类气味受体的分子水平的3D图片,这是破译嗅觉的关键一步,该成果打破了长期以来研究人员对嗅觉理解的僵局。 该研究成果于2023年3月15日发表在《Nature》&…...
WPF教程(九)--数据绑定(2)--绑定模式
一、绑定模式 绑定模式以及模式的使用效果。 示例如下是根据ListBox中的选中项,去改变TextBlock的背景色。将 TextBlock 的背景色绑定到在 ListBox 中选择的颜色。在下面的代码中针对TextBlock的 Background 属性使用绑定语法绑定从 ListBox 中选择的值。代码如下。…...
湿法冶金以及铼提取工艺,湿法冶金工艺特点及工艺流程
湿法冶金是利用浸出剂在一定温度压力下与矿石接触,把矿石中有用的金属溶解后再从溶液中回收有价金属的一种工艺,因为其过程大都是在水溶液中进行,所以又被称为“水法冶金”。 01 湿法冶金工艺特点及工艺流程 湿法冶金作为解决我国金属矿产资…...
kafka集群搭建
1.本次搭建涉及3台centos7主机,防火墙与selinux服务均关闭 2.主机参数如下表所示 nameIPportserviceA10.1.60.1122128、2888、3888、9092kafka、zookeeperB10.1.60.1142128、2888、3888、9092kafka、zookeeperC10.1.60.1152128、2888、3888、9092kafka、zookeeper…...
【UE】将存档的值显示在控件蓝图上
上一篇博客(【UE】保存游戏的demo)已经实现了存档功能,本篇博客介绍的是如何将存档的值显示在控件蓝图上。 效果 可以看到我们存档的值显示在文本控件上 步骤 1. 新建一个蓝图类,父类为“HUD” 命名为“NewHudClassBP” 2. 在世…...
考研数据结构代码篇
文章目录 数据结构线性表基本操作顺序表的定义顺序表基本操作 单纯上传一下数据结构中可能考察的代码,规格很乱,过几天改规格,提前水一篇 数据结构 线性表 基本操作 InitList(&L) // 初始化表。构造一个空的线性表L࿰…...
css-设置单行文本溢出省略号,使用overflow:hidden属性之后的出现的问题几解决办法。
1 设置单行文本溢出后出现省略号 必要:需要设置固定宽度,不允许换行 width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; 2 设置N行文本…...
js的方法
字符串方法: substring(startIndex, endIndex):从指定的字符串中提取字符并返回新字符串,不包括结束位置的字符。substr(startIndex, length):从指定字符串中提取指定长度的字符并返回新字符串。indexOf(searchValue, startIndex…...
[NSSRound#11] 密码学个人赛
这个比赛没有参加,跟别人要了些数据跑一下,其实交互这东西基本上一样,跑通就行. ez_enc 这题有点骗人,给了一堆AB串,一开始以为是培根密码,结果出来很乱.再看长度:192 应该就是01替换 a ABAABBBAABABAABBABABAABBABAAAABBABABABAAABAAABBAABBBBABBABBABBABABABAABBAABBABAA…...
玩转树莓派四、修改国内源提高更新速度
树莓派的软件包源默认连接的是官方源,速度不是很快,我们可以更换为第三方源以提高下载速度和体验。 首先通过命令 lsb_release -a 获取到版本号为 bullseye piRpi4B2G:/etc/apt $ lsb_release -a No LSB modules are available. Distributor ID: Debian Descripti…...
3小时变3分钟:用ChanlunX插件让通达信自动绘制缠论结构
3小时变3分钟:用ChanlunX插件让通达信自动绘制缠论结构 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否曾经面对复杂的K线图,试图手工画出缠论中的笔、线段和中枢࿰…...
从排名监控到答案诊断:一个算法工程师眼中的GEO工具技术选型标准
本文从工程师视角,剖析生成式搜索优化中的多模型诊断瓶颈,通过异步调度架构与沙盒隔离策略,实现品牌提及率的精准监控与算力可控消耗,为GEO工具选型提供技术验证依据。 传统监控工具在生成式搜索场景面临三重策略瓶颈:…...
上班族开例会懒得记要点?2026年这3款AI总结工具,会后自动整理纪要
做互联网运营四年,开会已经成了每天的常态。部门周例会、项目复盘会、线上培训课、远程沟通会,大大小小的视频会议一场接一场。以前最让我头疼的不是参会,而是会后整理纪要。开会时既要认真听讨论、跟进工作进度,又要低头飞速记笔…...
告别MCUXpresso IDE:手把手教你用VSCode + CMake + Ninja搭建NXP MCU开发环境(附SDK离线配置避坑指南)
告别MCUXpresso IDE:手把手教你用VSCode CMake Ninja搭建NXP MCU开发环境(附SDK离线配置避坑指南) 嵌入式开发者常年在资源受限的环境中工作,却不得不忍受传统IDE的资源挥霍。当MCUXpresso IDE占用2GB内存只为编辑一个头文件时&…...
惠普OMEN游戏本性能解放终极指南:OmenSuperHub完全使用教程
惠普OMEN游戏本性能解放终极指南:OmenSuperHub完全使用教程 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为官方Omen Gaming Hub的臃肿和…...
如何让老款Mac焕发新生:终极硬件限制破解与macOS兼容工具指南
如何让老款Mac焕发新生:终极硬件限制破解与macOS兼容工具指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为苹果官方停止支持的老款Mac无…...
ESP32连接阿里云物联网平台实战:从设备创建到APP控制,一个教程全搞定(避坑指南)
ESP32连接阿里云物联网平台实战:从设备创建到APP控制全流程解析 在智能硬件产品开发中,物联网平台的选择与集成往往是决定项目成败的关键环节。阿里云物联网平台凭借其稳定的服务、丰富的功能生态和本土化优势,已成为国内物联网开发者的首选。…...
python智能ai技术的智慧城市便民服务管理中心平台_668r7c05
目录同行可拿货,招校园代理 ,本人源头供货商项目背景核心技术功能模块应用场景优势与创新项目技术支持获取博主联系方式 源码获取详细视频演示 :同行可合作点击我获取源码->获取博主联系方式->进我个人主页-->同行可拿货,招校园代理 ,本人源头供货商 项目…...
对比官方价Taotoken活动价在长期使用中的成本优势感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比官方价,Taotoken活动价在长期使用中的成本优势感受 效果展示类,基于一段时间的实际使用数据࿰…...
生产级机器学习模型服务:从Notebook到Kubernetes的工程实践
1. 项目概述:这不是“跑通模型”,而是让模型在真实世界里活下来“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句行话暗号,老手一眼就懂:前面三篇已经蹚过了数据清洗、特征工程、…...
