iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >MongoDB balancer的使用详解
  • 164
分享到

MongoDB balancer的使用详解

2024-04-02 19:04:59 164人浏览 八月长安
摘要

目录01 balancer简介02 balancer工作中可能对业务造成的影响?03 设置balancer的执行时间窗口04 备份和balancer   在mon

   在mongoDB中,balancer(平衡器)是一个后台进程,它监控每个shard上的chunk数量,一旦chunk的数量差异超过了阈值,balancer会自动迁移数据块,从而保证每个分片上chunk数量的相对平衡。

   整个搬迁的过程对于用户来说是透明的,但是搬迁的过程中会对用户产生一些影响。

01 balancer简介

   从MonGoDB3.4开始,balancer运行在config server的主节点上。

    在3.4版本中,balancer进程活跃期间,config server的主节点通过修改locks集合中的一个_id为balancer的文档,来持有"balancer lock";

    3.6版本中,balancer不再持有

    默认的情况下,balancer始终处于开启状态,可以使用下面的命令来查看balancer的运行情况:


mongos> sh.getBalancerState()
true

    同样的,我们可以使用下面几个命令来简单的管理balancer:


查看banlancer是否正在工作
sh.isBalancerRunning() 

停止balancer
sh.stopBalancer()

启动balancer
sh.setBalancerState( true )

02 balancer工作中可能对业务造成的影响?

1、磁盘占用:
   从MongoDB2.6开始,MongoDB会自动归档迁移的chunk文档,以方便在chunk搬迁过程中出现问题后的文档恢复。

   我们可以通过配置文件中的参数:sharding.arcHiveMovedChunks

来控制是否开启迁移过程中chunk的自动归档,该参数在MongoDB2.6和3.0版本是默认开启的,其他版本都是默认关闭的。

2、带宽和负载占用:

    balancer再对chunk迁移过程中,会造成带宽和负载方面的开销。为了减轻这些影响,平衡器做了如下的工作:

a、一次迁移只能迁一个chunk,

b、一个shard同一时间只能执行一个迁移任务

c、从MongoDB3.4开始,引入了并行的chunk迁移,对于一个有n个shard的集群,每次最多并行迁移n/2(向下取整)个数据块

d、只有当chunk数量最多的shard和chunk数量最少的shard的差异达到阈值的时候,才开始迁移chunk

e、支持用户设置balancer的窗口时间,在业务低峰窗口时间内进行chunk的迁移工作,从而最大程度减轻对业务的影响。

03 设置balancer的执行时间窗口

 1、通过mongo shell连接到mongos上

2、切换到config数据库

    use config

3、确保当前balancer是开启的

    sh.getBalancerState()  返回true

4、设置窗口时间


db.settings.update(
   { _id: "balancer" },
   { $set: { activeWindow : { start : "<start-time>", stop : "<stop-time>" } } },
   { upsert: true }
)

其中,start-time和stop-time的取值如下:

  • For HH values, use hour values ranging from 00 - 23.
  • For MM value, use minute values ranging from 00 - 59.

MongoDb会以config数据库的primary节点的时间为参考,开始执行相关chunk的搬迁操作。

要确保设置的时间范围内,所有的chunk能够搬迁完毕,否则会出现数据库搬迁过后,依旧不均衡的现象。

移除chunk搬迁时间窗口的命令如下:


use config
db.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })

04 备份和balancer

   MongoDB中,不要在备份的时候启用balancer,否则,备份的数据将会不一致。通常情况下,备份的时间窗口要和balancer的时间窗口错开,如果balancer没有设置时间窗口,则在备份的时候,关闭balancer

   时间关系,就先到这里吧,其他内容后面再说

以上就是MongoDB balancer的使用详解的详细内容,更多关于MongoDB balancer的使用的资料请关注编程网其它相关文章!

--结束END--

本文标题: MongoDB balancer的使用详解

本文链接: https://www.lsjlt.com/news/125035.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB balancer的使用详解
    目录01 balancer简介02 balancer工作中可能对业务造成的影响?03 设置balancer的执行时间窗口04 备份和balancer   在Mon...
    99+
    2024-04-02
  • balancer怎么在MongoDB中使用
    本篇文章为大家展示了balancer怎么在MongoDB中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。01 balancer简介   从MongoDB3.4开始,balan...
    99+
    2023-06-14
  • HDFS Balancer负载均衡器及语法详解
    目录1、背景2、什么是平衡2.1 每个DataNode的利用率计算2.2 集群的利用率2.3 平衡3、hdfs balancer语法4、运行一个简单的balance案例4.1 设置平...
    99+
    2023-05-14
    HDFS Balancer负载均衡器 HDFS Balancer
  • 官方详解HDFS Balancer工具主要调优参数
    目录引言使用HDFS Balancer方式一:使用HDFS Balancer命令方式二:使用start-balancer.sh工具Balancer调优参数DataNode配置常见问题...
    99+
    2023-05-14
    HDFS Balancer工具参数调优 HDFS Balancer 参数调优
  • MongoDB的chunk详解
    目录chunk的大小如何确定???chunk的分裂chunk的迁移通常情况下,chunk迁移由下面三种场景触发:    MongoDB中,在使用到分片的时候,常常...
    99+
    2024-04-02
  • docker安装mongoDB及使用方法详解
    目录一、MongoDB是什么?1. mongo的体系结构2. mongoDB的特点(或使用场景)3. mongoDB与mysql、Redis对比4. mongoDB存储原理二、使用docker安装mongo1.安装2.创...
    99+
    2023-03-19
    docker安装mongodb docker安装mongo
  • mongodb插入详解
    db.getCollection("test").insert( {   name :"<c 语音》",   bookprice:"33.2",   adddate:"2017-10-l",   al...
    99+
    2024-04-02
  • MongoDB的使用
    今天来学习一个新的数据库,叫做MongoDB数据库,我们先来了解一下MongoDB数据库的概念,再一起学习如何使用MongoDB数据库吧~MongoDB的概念MongoDB是专为可扩展性、高性能和高可用性而设计的数据库,MongoDB的库中...
    99+
    2023-06-02
  • Java连接MongoDB的常用方法详解
    目录一、Java链接MongoDB二、查看库,查看集合三、Java对MongoDB增删改查1. 添加数据2. 删除数据3. 修改数据4. 查询数据一、Java链接MongoDB 1....
    99+
    2024-04-02
  • 详解MongoDB的角色管理
    目录NO.1 MongoDB内建角色内建角色的种类和特点?数据库用户角色:数据库管理角色:集群管理角色:备份和恢复角色:全数据库角色超级用户:内部角色:MongoDB中的角色特点NO...
    99+
    2024-04-02
  • HDFS Balancer工具主要调优参数怎么使用
    这篇“HDFS Balancer工具主要调优参数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HDFS&n...
    99+
    2023-07-05
  • SpringBoot——整合MongoDB详解
    引入依赖 org.springframework.boot spring-boot-starter-data-mongodb 配置文件 spring: data: mongodb: ...
    99+
    2023-09-01
    mongodb spring boot java
  • HDFS Balancer负载均衡器及语法怎么使用
    这篇文章主要介绍了HDFS Balancer负载均衡器及语法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HDFS Balancer负载均衡器及语法怎么使用文章都会有所收获,下面我们...
    99+
    2023-07-05
  • SpringBoot整合MongoDB的步骤详解
    目录项目结构:1.pom引入mongodb依赖2 配置application.properties3.创建mongodb文档映射实体类SpringBoot中MongoDB常用注解:4...
    99+
    2024-04-02
  • MongoDB TTL索引的实例详解
    MongoDB TTL索引的实例详解 TTL索引是一种特殊类型的单字段索引,主要用于当满足某个特定时间之后自动删除相应的文档。也就是说集合中的文档有一定的有效期,超过有效期的文档就会失效,会被移除。也即是数...
    99+
    2024-04-02
  • 详解MongoDB中的日志模块
    目录01 MongoDB日志组件种类及日志等级02 设置某个日志组件的日志级别方法一:db.setLogLevel()方法二:执行MongoDB命令方法三:写入配置文件方法四:启动的...
    99+
    2024-04-02
  • SpringBoot系列之MongoDB Aggregations用法详解
    目录1、前言2、什么是聚合?3、环境搭建4、数据initialize5、例子应用参考资料1、前言 在上一章的学习中,我们知道了Spring Data MongoDB的基本用法,但是对...
    99+
    2024-04-02
  • MongoDB:在 Java 中使用 MongoDB
    除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法。MongoDB 官方提供了 Java 语言的驱动包,利用这些驱动包可使用...
    99+
    2023-09-14
    mongodb java 数据库
  • MongoDB索引机制详解
    目录⭐ MongoDB 的索引机制⭐ 索引的类型 创建索引 - 单字段索引 创建索引 - 多字段索引 创建索引 - 唯一性索引 创建索引 - 文本索引 创建索引 - 地理空间索引⭐ 查看所有索引⭐ 删除索引⭐ Mongo...
    99+
    2023-04-23
    MongoDB的索引机制 MongoDB的索引 Python MongoDB
  • MongoDB 模式设计详解
    目录注意事项限制条件访问模式关系类型范式化和反范式化基本概念范式化选择模型设计小技巧指导原则删除旧数据一致性管理模式迁移模式管理编写代码来处理数据完整性问题注意事项 模式设计,即在文档中表示数据的方式,对于数据表示来说时...
    99+
    2022-12-26
    mongodb模式设计 mongodb应用设计模式 MongoDB数据模型的设计模式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作