iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >balancer怎么在MongoDB中使用
  • 738
分享到

balancer怎么在MongoDB中使用

2023-06-14 22:06:36 738人浏览 独家记忆
摘要

本篇文章为大家展示了balancer怎么在MongoDB中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。01 balancer简介   从mongoDB3.4开始,balan

本篇文章为大家展示了balancer怎么在MongoDB中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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() 停止balancersh.stopBalancer()启动balancersh.setBalancerState( true )

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

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

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

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

带宽和负载占用:

    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上

切换到config数据库

    use config

确保当前balancer是开启的

    sh.getBalancerState()  返回true

设置窗口时间

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 configdb.settings.update({ _id : "balancer" }, { $unset : { activeWindow : true } })

04 备份和balancer

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

上述内容就是balancer怎么在MongoDB中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: balancer怎么在MongoDB中使用

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

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

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

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

下载Word文档
猜你喜欢
  • balancer怎么在MongoDB中使用
    本篇文章为大家展示了balancer怎么在MongoDB中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。01 balancer简介   从MongoDB3.4开始,balan...
    99+
    2023-06-14
  • MongoDB balancer的使用详解
    目录01 balancer简介02 balancer工作中可能对业务造成的影响?03 设置balancer的执行时间窗口04 备份和balancer   在Mon...
    99+
    2024-04-02
  • MapReduce怎么在MongoDB中使用
    本篇文章为大家展示了MapReduce怎么在MongoDB中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。string map = ...
    99+
    2024-04-02
  • MongoDB:在 Java 中使用 MongoDB
    除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法。MongoDB 官方提供了 Java 语言的驱动包,利用这些驱动包可使用...
    99+
    2023-09-14
    mongodb java 数据库
  • 怎么在MongoDB中使用Shell 命令
    怎么在MongoDB中使用Shell 命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。--------------------数据库内容...
    99+
    2024-04-02
  • 怎么在Navicat中使用Premium连接mongodb
    怎么在Navicat中使用Premium连接mongodb?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。0 环境操作系统:win101 准备navicat15 破解CentOS...
    99+
    2023-06-07
  • 怎么在Spring Boot中使用MongoDB数据库
    这篇文章给大家介绍怎么在Spring Boot中使用MongoDB数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB简介MongoDB是一个基于分布式文件存储的数据库,...
    99+
    2024-04-02
  • HDFS Balancer工具主要调优参数怎么使用
    这篇“HDFS Balancer工具主要调优参数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HDFS&n...
    99+
    2023-07-05
  • HDFS Balancer负载均衡器及语法怎么使用
    这篇文章主要介绍了HDFS Balancer负载均衡器及语法怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HDFS Balancer负载均衡器及语法怎么使用文章都会有所收获,下面我们...
    99+
    2023-07-05
  • 如何在mongodb中使用driver
    如何在mongodb中使用driver?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MongoDB 是一个基于分布式文件存储的数据库。由 ...
    99+
    2024-04-02
  • 怎么在java中使用mongodb实现多表联查
    这期内容当中小编将会给大家带来有关怎么在java中使用mongodb实现多表联查,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。多表联查的查询语句:此处使用的为mongodb的robo3t可视化工具,先说下...
    99+
    2023-06-14
  • mongodb怎么使用
    如何使用 mongodb:下载并安装 mongodb。创建一个数据库并连接到它。创建集合(类似于表)。插入文档(存储数据的单位)。查询文档(使用查询语言)。更新文档(修改现有数据)。删除...
    99+
    2024-04-02
  • 怎么在MongoDB中使用delete()方法删除文档
    怎么在MongoDB中使用delete()方法删除文档?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、delete()方法官方推荐使用deleteOne()和delete...
    99+
    2023-06-14
  • 怎么在MongoDB中使用update()方法更新文档
    怎么在MongoDB中使用update()方法更新文档?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、update()命令db.collection.update(&nb...
    99+
    2023-06-14
  • 怎么在NestJs中使用Mongoose对MongoDB进行操作
    这篇文章主要介绍了怎么在NestJs中使用Mongoose对MongoDB进行操作,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!首先是安装所需依赖npm install --save...
    99+
    2023-06-06
  • 在C#中使用MongoDB数据库
    一、添加MongoDB引用 想要在C#中使用MongoDB,首先安装支持MongoDB的C#版的驱动。 利用MongoDB官方发布的C#驱动,可通过网络下载或nuget安装,得到M...
    99+
    2024-04-02
  • MongoDB中dayofmonth函数怎么使用
    在MongoDB中,dayofmonth函数用于提取日期字段中的日份。它的语法如下:```{ $dayOfMonth: }```其...
    99+
    2023-09-06
    mongodb dayofmonth
  • 如何在mongodb中使用golang驱动
    如何在mongodb中使用golang驱动?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用教程如下:导入go get g...
    99+
    2024-04-02
  • 怎么在mongodb中删除一个用户
    在mongodb中删除用户的方法:1.启动mongodb;2.登录mongodb数据库;3.使用数据库;4.查看所有用户;5.执行命令删除指定用户;具体步骤如下:首先,在命令行中启动mongodb服务;net start MongoDBmo...
    99+
    2024-04-02
  • mongodb中怎么安装和使用pymongo
    mongodb中怎么安装和使用pymongo,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1) mongodb的安装下载tgz解压后,需要添...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作