iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >mongodb数据块怎么迁移
  • 540
分享到

mongodb数据块怎么迁移

2023-06-30 05:06:15 540人浏览 薄情痞子
摘要

这篇“mongodb数据块怎么迁移”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mongoDB数据块怎么迁移”文章吧。1.

这篇“mongodb数据块怎么迁移”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mongoDB数据块怎么迁移”文章吧。

1. 基本概念

1.1 Chunk(数据块)

表示特定服务器上面,连续范围的分片键值所包含的一组数据,是一个逻辑概念。

例如,某数据块记录如下:

{    "_id" : "chunk-a",  // 数据块Id    "ns" : "user.address",  // 该数据块对应的数据库名和表名    "min" : {               // 该数据块对应的分片键值的起始值(包含),是“Shi Jiazhuang”        "city" : "Shi Jiazhuang"    },    "max" : {               // 该数据块对应的分片键值的结束值(不包含),是“Nanjjing”        "city" : "Nan Jing"    },    "shard" : "repa"        // 该数据块存储在repa分片服务器               }// 即该数据块记录表示,数据库user中的表address中的“city”字段中,其值从“Shi Jiazhuang”(包含)到“Nan Jing”(不包含)这段连续区间的数据,都存储在名为repa的分片服务器。

1.2 Chunk Size(数据块大小)

数据块所对应的数据,如果超过64M(默认值),则会被系统自动切分为两个数据,即数据块会从1块切分为2块,图示如下:

mongodb数据块怎么迁移

1.3 Migration(数据块迁移)

monGodb有一个后台的平衡器进程,它会监控各个分片服务器上面的数据块的数量,如果发现不同的分片服务器上面数据块的数量差异,超过阈值,则会启动数据块迁移任务,

直至不同的分片服务器之间的数据块的数量差异落在阈值之内,图示如下:

mongodb数据块怎么迁移

1.4 Migration Thresholds(迁移阈值)

数据块的迁移阈值,是和该表的数据块总数相关的,具体如下:

数据块总数量阈值
小于202
20-794
大于等于808

2. 迁移流程

数据块的迁移对于用户和应用层来说是透明的,当然可能会有些性能的损失,整个迁移流程有7个步骤,图示如下

mongodb数据块怎么迁移

各个步骤的内容如下:

平衡器发送迁移命令给源节点。

源节点启动了一个内部的数据块迁移命令给目标节点,同时在数据块迁移期间,对于该数据块的请求依然路由到源节点。

目标节点首先创建该数据块上缺失的索引(如果需要的话)。

目标节点到源节点拉取数据。

目标节点需要到源节点再请求在步骤4执行期间的增量变更数据(新增、更新和删掉),如果有则跳转到步骤4,直到没有增量数据。

数据全部迁移成功后,源节点会向配置服务器(config server)发送请求,更新该数据块的元数据中的"分片服务器(shard)"的值为目标节点。

源节点删除本地的该数据块对应的数据。

3. 最佳实践

以上分享了数据块和数据块迁移的一些基本概念和流程,下面是一些最佳实践。

3.1 关于数据块大小的选择

数据块的大小,默认是64M,通常情况下是不需要修改它的,但是有时候该值的大小根据不同的业务场景会带来不同的影响,需要综合多方面的因素来设置该值。

数据块大小太小:通常情况下,较小的数据块大小,会带来更频繁的数据块迁移,数据在集群间的分布会更加均衡,但是如果分片键设置的不够合理,则会产生很多无法切分(split)的大数据块,太大的数据块无法在分片之间迁移,从而导致数据分布的不均衡性,此时需要把数据块大小调大。

数据块大小太大:较大的数据块,意味着更少的数据块迁移,数据在集群间的分布容易出现不平衡,同时也容易产生读写热点(可手动切分),此时需要把数据块大小调小。

3.2 关于数据块迁移对集群性能的影响

数据块迁移除了占用目标节点和源节点的带宽和磁盘读写资源外,在迁移流程中的步骤6会短暂阻塞对该数据块的访问,影响应用的访问,因此建议设置平衡器的活跃时间窗口,设置为业务低估时进行,步骤如下:

连接到mongos。

切换到config数据库

use config

启动平衡器

如果平衡器是关闭状态,则设置活跃时间窗口也是不会做数据迁移的,命令如下:

sh.startBalancer()

修改活跃时间窗口

db.settings.updateOne(   { _id: "balancer" },   { $set: { activeWindow : { start : "01:00", stop : "06:00" } } },  // start和stop的格式为"HH:MM",其中HH的取值范围是0到23,MM的取值范围是00到59   { upsert: true })

以上就是关于“mongodb数据块怎么迁移”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: mongodb数据块怎么迁移

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

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

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

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

下载Word文档
猜你喜欢
  • mongodb数据块怎么迁移
    这篇“mongodb数据块怎么迁移”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mongodb数据块怎么迁移”文章吧。1. ...
    99+
    2023-06-30
  • MongoDB数据块的迁移过程是什么
    MongoDB的数据块迁移是指在数据分片集合中,当数据块需要在不同的分片之间迁移时的过程。数据块迁移通常发生在数据分片的rebala...
    99+
    2024-04-19
    MongoDB
  • mongodb 数据块的迁移流程分析
    目录1. 基本概念1.1 Chunk(数据块)1.2 Chunk Size(数据块大小)1.3 Migration(数据块迁移)1.4 Migration Thresholds(迁移...
    99+
    2024-04-02
  • mongodb整个数据库怎么迁移
    将MongoDB整个数据库迁移可以通过以下步骤实现: 备份源数据库:首先需要对源数据库进行备份,可以使用mongodump命令将...
    99+
    2024-04-10
    mongodb
  • 怎么迁移mongodb
    要迁移 MongoDB,您可以按照以下步骤进行操作:1. 备份数据:在迁移之前,首先需要备份您的 MongoDB 数据。您可以使用 ...
    99+
    2023-08-31
    mongodb
  • JSON数据怎么从MongoDB迁移到MaxCompute
    这篇文章主要介绍“JSON数据怎么从MongoDB迁移到MaxCompute”,在日常操作中,相信很多人在JSON数据怎么从MongoDB迁移到MaxCompute问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-04
  • Mongodb数据迁移步骤是什么
    本篇内容介绍了“Mongodb数据迁移步骤是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求:需要将...
    99+
    2024-04-02
  • MongoDB在不同版本间怎么迁移数据
    在MongoDB中,可以通过以下几种方法来迁移数据: 导出和导入数据:可以使用mongodump和mongorestore命令来...
    99+
    2024-04-19
    MongoDB
  • mongodb数据迁移的方法是什么
    MongoDB数据迁移的方法有以下几种: 数据备份和还原:使用mongodump命令将数据备份到文件中,然后使用mongores...
    99+
    2023-10-25
    mongodb
  • MongoDB中怎么优化大规模数据迁移
    在MongoDB中优化大规模数据迁移的过程,可以通过以下几种方式来实现: 使用批量操作:在进行数据迁移时,可以使用MongoDB...
    99+
    2024-04-19
    MongoDB
  • MongoDB怎么处理架构变化时的数据迁移
    在MongoDB中处理架构变化时的数据迁移通常有以下几种方法: 导出和导入数据:将原有的数据导出为JSON或CSV格式,然后根据...
    99+
    2024-04-19
    MongoDB
  • MongoDB的数据迁移与版本升级怎么实现
    MongoDB的数据迁移与版本升级可以通过以下步骤来实现: 数据迁移: 在源数据库中执行mongodump命令,将数据导出为J...
    99+
    2024-05-07
    MongoDB
  • postgresql数据库数据怎么迁移
    要迁移PostgreSQL数据库数据,可以使用以下几种方法: 使用pg_dump和pg_restore命令:可以使用pg_dump...
    99+
    2024-04-17
    postgresql
  • DynamoShake怎么从dynamodb迁移到mongodb
    DynamoShake怎么从dynamodb迁移到mongodb,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。DynamoShake基本功能D...
    99+
    2024-04-02
  • Python使用FlaskMigrate模块迁移数据库
    目录前言安装初始化项目结构三大命令前言 本篇文章,阐述一下Flask中数据库的迁移 为什么要说数据库迁移呢? 比如我们以前有一个数据库,里面的信息有 id, name现在我想再加一个...
    99+
    2024-04-02
  • expdp/impdp怎么迁移数据
    本篇内容主要讲解“expdp/impdp怎么迁移数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“expdp/impdp怎么迁移数据”吧! ...
    99+
    2024-04-02
  • mysql数据库怎么迁移
    本篇内容主要讲解“mysql数据库怎么迁移”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库怎么迁移”吧!上面是测试人员的要求,可以提取出2条有用的...
    99+
    2024-04-02
  • sqlserver数据库怎么迁移
    SQL Server数据库迁移可以通过以下几种方法进行: 使用SQL Server Management Studio (SSM...
    99+
    2024-04-12
    sqlserver
  • MongoDB数据库快速迁移的方法是什么
    要在MongoDB数据库之间进行快速迁移,可以采用以下方法之一:1. 备份和恢复:使用mongodump命令将原始数据库备份到一个文...
    99+
    2023-08-30
    MongoDB数据库
  • 如何在Mac之间进行数据迁移,macbook怎么迁移数据
    更换了新的Mac电脑,怎样把旧Mac里面的文件、应用程序和帐号信息等迁移到新Mac上?如何在Mac之间进行数据迁移。 一、mac电脑怎么迁移数据 mac电脑怎么迁移数据?据苹果官方消息得知,Mac里储存的文件资料、系统设置、帐户信息...
    99+
    2023-09-01
    macos windows microsoft
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作