首页 > 数据库 >MongoDB 重新同步复制集成员

MongoDB 重新同步复制集成员

时间:2024-03-16 16:13:58浏览次数:25  
标签:02 同步 MongoDB 成员 2024 复制 timestamp date

测试的复制集因为磁盘空间的问题,落后主节点太多,数据不同步:

{"t":{"$date":"2024-02-19T16:13:06.387+08:00"},"s":"I",  "c":"REPL",     "id":21799,   "ctx":"ReplCoordExtern-0","msg":"Sync source candidate chosen","attr":{"syncSource":"x.x.x.82:27017"}}
{"t":{"$date":"2024-02-19T16:13:06.388+08:00"},"s":"I",  "c":"REPL",     "id":5579708, "ctx":"ReplCoordExtern-0","msg":"We are too stale to use candidate as a sync source. Denylisting this sync source because our last fetched timestamp is before their earliest timestamp","attr":{"candidate":"x.x.x.82:27017","lastOpTimeFetchedTimestamp":{"$timestamp":{"t":1702315041,"i":1249}},"remoteEarliestOpTimeTimestamp":{"$timestamp":{"t":1707324692,"i":393}},"denylistDurationMinutes":1,"denylistUntil":{"$date":"2024-02-19T08:14:06.388Z"}}}
{"t":{"$date":"2024-02-19T16:13:06.388+08:00"},"s":"I",  "c":"REPL",     "id":21799,   "ctx":"ReplCoordExtern-0","msg":"Sync source candidate chosen","attr":{"syncSource":"x.x.x.81:27017"}}
{"t":{"$date":"2024-02-19T16:13:06.389+08:00"},"s":"I",  "c":"REPL",     "id":5579708, "ctx":"ReplCoordExtern-0","msg":"We are too stale to use candidate as a sync source. Denylisting this sync source because our last fetched timestamp is before their earliest timestamp","attr":{"candidate":"x.x.x.81:27017","lastOpTimeFetchedTimestamp":{"$timestamp":{"t":1702315041,"i":1249}},"remoteEarliestOpTimeTimestamp":{"$timestamp":{"t":1707324526,"i":1115}},"denylistDurationMinutes":1,"denylistUntil":{"$date":"2024-02-19T08:14:06.389Z"}}}
{"t":{"$date":"2024-02-19T16:13:06.389+08:00"},"s":"I",  "c":"REPL",     "id":21798,   "ctx":"ReplCoordExtern-0","msg":"Could not find member to sync from"}
{"t":{"$date":"2024-02-19T16:13:20.998+08:00"},"s":"I",  "c":"STORAGE",  "id":22430,   "ctx":"Checkpointer","msg":"WiredTiger message","attr":{"message":"[1708330400:998702][596:0x7ff714c47700], WT_SESSION.checkpoint: [WT_VERB_CHECKPOINT_PROGRESS] saving checkpoint snapshot min: 15, snapshot max: 15 snapshot count: 0, oldest timestamp: (1702314741, 1249) , meta checkpoint timestamp: (1702315041, 1249) base write gen: 33406434"}}

 

当复制集成员的复制进程落后太多,以至于主节点覆盖了该成员尚未复制的 oplog 条目时,复制集成员就会变得 "stale"。出现这种情况时,必须删除成员的数据并执行初始同步,从而完全重新同步成员。

 

MongoDB 提供了两种执行初始同步的选项:

1.以空数据目录重启 mongod,让 MongoDB 的正常初始同步功能恢复数据。这是更简单的选择,但可能需要更长的时间来替换数据。

2.使用复制集中另一个成员的最新数据目录副本重启机器。此程序可以更快地替换数据,但需要更多手动步骤。

 

同步成员时,请选择系统带宽足以移动大量数据的时间。将同步安排在使用率较低的时间或维护窗口期间。

 

方法一:自动同步成员

这个过程依赖momgodb复制集同步的常规过程。还可以在 dbPath 目录不包含内容的情况下重启实例,从而强制已是集合成员的 mongod 执行初始同步:

 

1.关闭 mongodb 成员实例

要确保干净的关闭,可以使用db.shutdownServer()、或者使用mongod --shutdown

2.可选项

备份数据

3.删除dbPath目录下的所有数据和子目录

4.重启mongodb实例

 

启动后,mongod就会执行初始化同步。初始化同步消耗的时间取决与数据量的大小、以及成员节点之间的网络延迟。

 

方法二:从其它成员节点拷贝数据文件进行同步

1.从其它成员节点拷贝数据文件

2.成员同步

数据文件拷贝完成后,使用一个新的 members[n]._id 启动 mongodb 实例

 

注意点:拷贝数据文件,记得要包含local数据库的内容。此外,不要使用mongodump的备份,必须是快照一致性备份。

 

标签:02,同步,MongoDB,成员,2024,复制,timestamp,date
From: https://www.cnblogs.com/abclife/p/18022468

相关文章

  • 电路方案分析(十八)四开关buck-boost双向同步DC/DC变换器方案
    tip是:资料来自网络,仅供学习交流使用!1.概述4开关降压升压双向DC-DC电源转换器在很多应用中都有使用。作为一个同步降压或同步升压转换器,其中只有两个开关切换,开关损耗减少到一半。只有当直流母线和电池电压彼此接近,然后转换器作为一个同步降压-升压转换器,其中所有四个开关......
  • WSL 修复同步记录
    WSL修复同步记录wsl--unregisterUbuntuwsl--install---$sudosu#cp/etc/apt/sources.list/etc/apt/sources.list.bak---https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/---#vim/etc/apt/sources.list#aptupdate#aptupgrade-y#aptinstalllanguag......
  • OpenMP - 同步机制“锁”
    OpenMP中的锁(lock)是一种同步机制,用于保护共享资源,以防止多个线程同时访问或修改它,从而避免竞态条件。锁允许线程在访问临界区之前获取锁,并在退出临界区时释放锁。这样可以确保在任何给定时间只有一个线程能够访问临界区,从而保证了数据的一致性。简单锁最基本的锁,只能被一个线程......
  • 永磁同步电机非线性磁链观测器
    文章目录1、非线性磁链观测器理论分析2、锁相环观测角度3、锁相环调参分析4、非线性磁链观测器方程的离散化5、非线性磁链观测器仿真参考写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学......
  • MongoDB从0到1:高效数据使用方法
            MongoDB,作为一种流行的NoSQL数据库。从基础的文档存储到复杂的聚合查询,从索引优化到数据安全都有其独特之处。文末附MongoDB常用命令大全。目录1.引言MongoDB简介MongoDB的优势和应用场景2.基础篇安装和配置MongoDBMongoDB基本概念使用MongoDBShel......
  • 双击复制剪切板
    方法一vue插件npminstall--savevue-clipboard2引入importVuefrom'vue'importVueClipboardfrom'vue-clipboard2'Vue.use(VueClipboard)方法执行clickCopy(){this.$copyText("www.baidu.com").then(res=>{......
  • 使用docker搭建mongodb
    使用DockerCLI搭建MongoDB1.运行MongoDB容器首先,我们使用以下命令来启动一个MongoDB容器:dockerrun-itd--namemongodb_comm-v$PWD/data:/data/db-p27017:27017mongo:4.4--auth参数解释:-itd:这三个参数通常一起使用,i表示交互式模式,t分配一个伪......
  • Redis高级-删除策略、主从复制、哨兵模式
    1.删除策略1.过期数据redis中的数据特征Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态TTL返回的值有三种情况:正数,-1,-2正数:代表该数据在内存中还能存活的时间-1:永久有效的数据-2 :已经过期的数据或被删除的数据或未定义的数据......
  • MongoDB数据库之主从复制配置实战【转】
    一、MongoDB介绍 1.1MongoDB简介MongoDB是一个开源的文档数据库,使用JSON格式存储和操作数据,具有高度灵活性和可扩展性。MongoDB的数据模型是面向文档的,这意味着它可以存储各种类型的数据,如数组、嵌套文档和二进制数据。MongoDB是一种NoSQL数据库,不需要使用传统的表格结构。M......
  • vim没有clipboard,没法复制到系统剪切板,通过xclip将复制、删除的内容放到系统剪切板
    解决方法:在/etc/vim/vimrc或者~/.vimrc中添加下面的命令auTextYankPost*exesystem("xclip-selectionclipboard",@")一开始遇到这个问题,网上的解决方案都是安装一个超大的vim,这很不优雅,我喜欢小而高效的解决方案。后来看到一个使用xclip的方案,这个方案用的是按键映射......