mongodb添加延时节点

  1. 简介

延时节点是主节点过去某个时间点的”数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据。例如,当前时间是10:00,并且延时节点设置1个小时的延时同步,那么该节点不会同步1个小时内主节点上的操作。

  1. 基本要求

2.1. 优先级

优先级必须设置为0,防止延时节点被选为主节点。

2.2. 隐藏节点

应该把延时节点设置为隐藏节点,这样客户端在做从服务器读操作时,请求不会被分发到延时节点。

2.3. 可以选举投票

在发生选举时,该节点可以投票。

2.4. 延时时长

延时节点通过延时从opLog同步数据来实现,因此延时时长的设置需要考虑两个因素:

  1. 不小于维护时间窗口
  2. 比opLog 的容量要小一些,不然会不能同步而进入stale 状态

  3. 延时节点设置

下面举一个例子来说明如果设置延时节点。假定目前有一个包含5个节点的复制组:1个主节点、3个普通从节点、1个延时节点。延时节点的延时时长设置为3600s,并且它是一个优先级为0的隐藏节点,如下图所示:

mongodb添加延时节点

连接到复制组的主节点,然后配置:

cfg = rs.conf()

cfg.members[1].priority = 0

cfg.members[1].hidden = true

cfg.members[1].slaveDelay = 3600

rs.reconfig(cfg)

  1. 注意事项

rs.reconfig()命令执行后,会强制当前的主节点下线,然后进行新的主节点选择。主节点下线时,会关闭所有客户端的连接,这个过程会持续10-20s,因此该操作应该在维护时间执行,减少对系统的影响。

Original: https://www.cnblogs.com/xinghebuluo/p/6025610.html
Author: xinghebuluo
Title: mongodb添加延时节点

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573726/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • mysql8远程连接问题

    问题 连接 MySQL8 报错: sql;gutter:true; 2059 – authentication plugin 'caching_sha2_password…

    Java 2023年6月6日
    086
  • Docker 环境 Nacos2 MySQL8

    本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据。 1 拉取镜像 1.1 创建目录 在硬盘上创建 nacos 的有…

    Java 2023年6月16日
    055
  • 基于node、ganache搭建一个以太坊投票Dapp

    前言 这段时间在remix中学习solidity语法,虽然remix很强大,但是编写好的合约代码很容易丢失,虽然remix可以使用本地文件系统及github中的远程仓库,但还是想尝…

    Java 2023年6月8日
    092
  • [Java编程思想] 第八章 多态

    “我曾经被问到’求教,Babbage先生,如果你向机器中输入错误的数字,可以得到正确的答案吗?’我无法恰当地理解产生这种问题的概念上地混淆&#8…

    Java 2023年6月5日
    0131
  • Java邮件发送中的setRecipient方法使用

    一、方法 setRecipient(Message.RecipientType type, Address address),是用于设置邮件的接收者。 1、有两个参数,第一个参数是…

    Java 2023年6月7日
    071
  • Git 实用命令记录

    git branch -d 分支名 只能删除本地的一个分支 ,删除远程分支的命令为 git push origin –delete 分支名 记得一朋友问我,你给我的这个地址上的代…

    Java 2023年6月5日
    071
  • 避坑!SimpleDateFormat不光线程不安全,还有这个隐患

    众所周知,SimpleDateFormat是多线程不安全的 下面这段代码通过多线程使用同一个SimpleDateFormat对象的parse方法, 多次执行代码来测试,可以看到会出…

    Java 2023年6月15日
    093
  • LeetCode题解—-两数之和

    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答…

    Java 2023年6月6日
    078
  • 同步工具类 CountDownLatch 和 CyclicBarrier

    在开发中,一些异步操作会明显加快执行速度带来更好的体验,但同时也增加了开发的复杂度,想了用好多线程,就必须从这些方面去了解 线程的 wait() notify() notifyal…

    Java 2023年6月5日
    0119
  • [学习笔记] Java修饰符

    Java当中的修饰符可在定义类、方法或变量时放在语句前面作修饰。根据修饰符的用途,可将其分为访问修饰符和非访问修饰符。 访问控制修饰符 访问控制修饰符用于指明对类、方法/构造方法的…

    Java 2023年6月5日
    070
  • ch02 JAVA入门

    JAVA入门 JAVA特点 语法和C语言类似 没有指针和内存管理 高度可移植性,运行在JVM虚拟机上 面向对象 类型安全 高质量的类库 JAVA的平台、系统和工具 构建工具:Ant…

    Java 2023年6月9日
    0100
  • Java避坑宝典《Java业务开发常见错误100例》上线了

    写这个专栏的缘起 之前我写过一篇博客:《朱晔的互联网架构实践心得S2E2:写业务代码最容易掉的10种坑》,引起的关注还是挺多的。后来和极客时间的编辑一拍即合决定以这个为题写一个专栏…

    Java 2023年5月29日
    091
  • WIN7下命令行修改注册表提示拒绝访问的解决

    win7系统的注册表是系统的关键功能之一,一般人不会去修改,在用户使用系统中,如果需要修改注册表却遇到提示拒绝访问要怎么办? 在运行中输入cmd,打开命令行窗口,输入如下测试代码,…

    Java 2023年5月30日
    098
  • mysql基础以及innodb引擎

    mysql架构以及innodb架构 Mysql架构分为Server层和引擎层 Server层 包括 连接器 查询缓存 分析器 优化器 执行器 以及一个binlog日志模块(用于主从…

    Java 2023年6月7日
    0108
  • quartz框架(十)-QuartzSchedulerThread

    本篇博文,博主将介绍QuartzSchedulerThread的相关内容。话不多说,直接进入正题。 从源码和该类的名称上,QuartzSchedulerThread首先是一个线程类…

    Java 2023年6月7日
    078
  • JAVA压缩ZIP文件

    csharp;gutter:true; public static void main(String[] args) throws IOException { String pat…

    Java 2023年5月29日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球