mongodb sharding 原理学习与试用(五)之添加与移除shard

1. 今天上午遇到一个有关host设置一部分是localhost另一部分是hostname,造成向sharding添加shard的时候失败。特纪录下来。 问题:一个已存在的sharding各个shard都是本机的其他的mongod进程,在当初添加shard的时候,db.runCommand({addshard:”localhost:po

1. 今天上午遇到一个有关host设置一部分是localhost另一部分是hostname,网站空间,造成向sharding添加shard的时候失败。特纪录下来。

  问题:一个已存在的sharding各个shard都是本机的其他的mongod进程,在当初添加shard的时候,db.runCommand({addshard:”localhost:port”})。后来又在本机配置了一个replSet.问题就来了。replSet布署成功后,其中的各个节点的host使用的是hostname.这样一来,当我将replSet添加到sharding的时候报错。因为sharding的各个节点如果都是本机的其他进程的话,在设置host的时候要么全部使用localhost要么全部使用hostname,如果混用会报错。

  解决过程:刚开始我打算将replSet的各个节点的host改成localhost.但是在reconfig的时候报错。报错截图如下:

  

  之后考虑将已经添加到sharding中各个shard的host改成hostname.修改方法是use config;db.shards.update({_id:xx},{host:”xx”});这回修改成功了。之后就简单了。

2. 从sharding当中移除一个shard。需要将存储在将被移除的shard中数据移到其他的shard中。移除完成后,被移除的shard就没有数据了。

  (一)移除一个shard. use admin; db.runCommand({removeshard:”name”});

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (二)执行结果如上图,需要注意的是,note有提示说需要执行movePrimary操作。这是因为被移除的shard是某几个库的大本营。如果是这种情况,就需要在数据移除完之后执行movePrimary操作,为这几个库设置新的大本营。需要设置新的大本营的几个库这里也已经给出来了,例如dbsToMove的值 。如果被移除的shard不存在是任何一个库的大本营,那么就不需要执行movePrimary.如下图

  

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (三)如上图,名为shard0001的shard并不是哪个库的大本营,因此在被移除的时候,结果输出中并没有类似于移除shard0000的时候有note与dbsToMove这两个值。需要注意的是,被移除的shard是某几个库的大本营,不管是否有库不参加分片,都需要为库设置新的大本营。如下图

  

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (四)在数据迁移之前sar的partitioned的值是false,迁移完成执行movePrimary操作后,sar的partitioned的值仍是false.如下图。

豆包爱学 豆包爱学

豆包旗下AI学习应用

豆包爱学 674 查看详情 豆包爱学

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (五)在移除数据过程中,由于网络与数据量的原因,可能需要花费不同的时间。执行db.runCommand({removeshard:”name”})命令可以查看数据迁移的进度。

   

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (六)如上图,通过执行db.runCommand({removeshard:”name”})命令不但可以开始移除shard,还可以在移除的过程中查看数据迁移的进度。remaining的值就表示数据迁移的进度。其中chunks代表还剩多少块数据需要被迁移。当chunks的值等于0时代表数据迁移完成。dbs的值代表还剩多少个库需要设置新的大本营。movePrimary操作要等到数据迁移完成之后再进行。也就是当chunks的值等于0后才可以执行movePrimary操作。

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (七)如上图,chunks的值等于0代表数据迁移已经完成。可以开始movePrimary操作。

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (八)如上图,将库foo,too重新设置大本营为rs0这个shard.操作完成后,香港虚拟主机,可以查看整个移除进度了。

  

mongodb sharding 原理学习与试用(五)之添加与移除shard

  (九)如上图,代表整个移除过程已经全部完成。这个时候就可以放心的停掉shard0000这个shard了。

  

   

  

,美国服务器

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/472329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 08:04:02
下一篇 2025年11月8日 08:08:34

相关推荐

  • 如何将MongoDB 聚合查询中的 $substr 操作符转换为 PHP 代码?

    mongo $substr转换为php 在php中,可以使用”$substr”管道操作符来从字符串中提取子字符串。其语法为: $substr: [“”, , ] 其中: 是要提取子字符串的字段。 是子字符串开始位置的索引。 是子字符串的长度。 问题中聚合查询的php实现 立即…

    2025年12月9日
    000
  • 如何将MongoDB中的$substr运算符转换为PHP代码?

    mongodb中的$substr转换为php 在mongodb中,$substr运算符可以从字符串中提取子字符串。为了将此运算符转换为php,可以使用substr函数。 示例:将mongodb日期字符串转换为php 假设mongodb文档中存储的日期为字符串格式,例如“2014-07-09 09:0…

    2025年12月9日
    000
  • 如何用 PHP 实现 MongoDB 中的 $substr 操作符?

    mongo 中 $substr 操作符的 php 实现 为了将 mongodb 中的 $substr 操作符转换为 php 代码,可以使用 mongo_collelection 的 aggregate 方法。步骤如下: 首先,定义聚合流水线: $pipeline = [ [‘$project’ =&…

    2025年12月9日
    000
  • php源代码怎么用

    如何使用 PHP 源代码?准备开发环境:安装 PHP 解析器、开发工具。创建 PHP 文件:扩展名为 “.php”,编写 PHP 代码。运行 PHP 文件:使用 Web 服务器或命令行。理解 PHP 语法:遵循其规则和关键字。利用 PHP 函数和类:简化开发并增强功能。连接到…

    2025年12月9日
    000
  • 网站系统消息的已读未读状态如何实现?

    系统消息已读未读状态的实现 在网站的消息功能中,系统消息的已读未读状态需要记录下来,以便在用户打开消息模块时,能正确展示每条系统消息的阅读状态。 记录表方法 最简单的方法是在数据库中创建一个记录表,其中记录每个用户对每个系统消息的读取状态。例如,表结构可以如下: 用户ID | 消息ID | 读取状态…

    2025年12月9日
    000
  • PHP 函数与云计算服务的集成

    通过集成云计算服务,php应用程序可以利用诸如云存储、数据库和机器学习等功能。具体集成步骤包括,1. 使用php函数库或客户端与云服务交互,例如aws-sdk-php函数库用于与aws s3存储交互;2. 建立云服务客户端,并提供必要的配置信息;3. 调用云服务函数,如上传文件到s3桶或处理机器学习…

    2025年12月9日
    000
  • PHP函数在云计算中的实用性

    PHP 函数在云计算中的实用性 云计算是一种通过互联网按需提供计算资源的服务,它提供了弹性和可伸缩的基础设施,使企业能够快速、轻松地部署和管理应用程序。PHP 是一种广泛用于 Web 发展的脚本语言,它提供了一系列函数,使其成为云计算中非常有用的工具。 PHP 函数在云计算中的用例 文件处理: 使用…

    2025年12月9日
    000
  • 如何使用 PHP 函数和 C 扩展进行高效的数据交换?

    在 php 中高效数据交换:php 内置函数:json_encode() 和 json_decode():序列化和反序列化为 json。serialize() 和 unserialize():序列化和反序列化为二进制流(仅限同一服务器)。base64_encode() 和 base64_decode…

    2025年12月9日
    000
  • PHP 函数如何使用 MongoDB 调用外部函数?

    mongodb 提供 aggregate() 方法调用外部函数,用于在聚合管道阶段执行存储在 mongodb 中的 javascript 代码。该函数通过 ‘$function’ 参数配置,包括代码主体、参数和语言(默认为 “js”)。实战案例中,通过…

    2025年12月9日
    000
  • PHP 参数绑定与 NoSQL 数据库的兼容性

    nosql数据库中参数绑定兼容性因数据库类型而异:mongodb:使用函数参数传递实现类似于参数绑定的功能。redis:不支持参数绑定。cassandra:支持使用prepared statement实现参数绑定。hbase:不支持参数绑定。dynamodb:支持使用expressionattrib…

    2025年12月9日
    000
  • 为什么要在 Laravel 中实现存储库模式?

    laravel 中的存储库模式简介 存储库模式是一种设计模式,用于管理数据访问逻辑并将其集中在一个地方。这种模式有助于将检索和保存数据的逻辑与业务逻辑分开,使代码库更加模块化、可重用和可测试。 在 laravel 中,存储库模式可用于抽象与数据模型(如 eloquent 模型)的交互,使您的代码随着…

    2025年12月9日
    000
  • php有哪些插件

    PHP的插件生态系统提供了丰富的功能来增强其核心能力,包括:数据库连接图像处理内容管理框架缓存安全保护测试工具插件可以通过Composer或手动安装,并使用require语句包含在脚本中。在选择插件时,应考虑功能性、性能、维护、社区支持和许可协议等因素。 PHP 的插件 PHP 拥有丰富的插件生态系…

    2025年12月9日
    000
  • php论题有哪些

    PHP 作为流行编程语言,常见的论题包括后端开发优势与劣势、框架比较、与 MySQL 集成、前沿技术应用、安全性和性能优化、社区支持、未来发展方向。 PHP 论题 PHP 作为一种流行的编程语言,拥有广泛的应用场景,因此可供讨论的论题也十分丰富。以下列出一些常见的 PHP 相关论题: 后端开发 PH…

    2025年12月9日
    000
  • php中有哪些api

    文章中介绍了 PHP 中最常用的 API:数据访问:PDO、mysqli、MongoDB网络通讯:cURL、Sockets、WebSockets文件系统交互:fopen()、fwrite()、glob()、file_get_contents()图像处理:GD、ImageMagick其他 API:JS…

    2025年12月9日
    000
  • php语言都有哪些

    PHP 是一种广泛使用的服务器端脚本语言,用于构建动态交互式网站,其特点包括:服务器端脚本,在服务器上执行,向客户端发送 HTML 页面;跨平台兼容,可运行于多种操作系统;丰富的库生态系统,用于各种任务;面向对象编程,实现可重用代码;数据库连接,可连接多种数据库;表单处理,收集用户输入并存储到数据库…

    2025年12月9日
    000
  • php都有哪些技术

    PHP 广泛的技术包括:1. MVC 框架,如 Laravel、CodeIgniter 和 Symfony;2. 内容管理系统 (CMS),如 WordPress、Joomla 和 Drupal;3. 数据库管理系统 (RDBMS),如 MySQL、PostgreSQL 和 MongoDB;4. 前…

    2025年12月9日
    000
  • 山寨币(Altcoin)是什么?如何在海量项目中发现价值币?

    山寨币是比特币外的加密货币,旨在解决其扩展性、速度等问题。1、通过白皮书、代币模型和主网情况判断技术价值;2、评估团队背景、代码更新与社区活跃度以识别项目可信度;3、分析链上地址增长、持币分布与交易量,避免操纵风险;4、考察实际产品、合作伙伴及应用场景,优选集成于DeFi或支付系统的实用型项目。 山…

    2025年12月9日
    000
  • 欧易提币USDT到账时间多久?OKX提币网络选择、链确认数与常见失败原因分析

    usdt提币的到账时间受到多种因素的影响,包括但不限于所选择的网络类型、链上确认数、网络拥堵状况以及接收方平台的处理速度。本文将深入探讨欧易okx提币usdt的相关细节,帮助用户更好地理解提币流程、选择合适的网络并有效规避常见的提币失败问题。 欧易OKX官网入口: 欧易(原okex)官方app下载:…

    2025年12月9日
    000
  • 比特币11月行情分析:牛市信号浮现、资金提前卡位潜力新币

    比特币再度成为11月市场焦点,宏观环境与技术面双重支撑其上行潜力。历史数据显示,11月向来是决定比特币全年走势的关键节点——过去十年中,btc在该月平均涨幅逾40%。而2025年的背景尤为特殊:降息预期持续升温、全球流动性逐步回流、机构持仓稳步攀升,为本轮上涨提供了坚实基础。当前btc报价约109,…

    2025年12月9日
    000
  • Galaxy的观点:山寨币ETF大军即将到来 哪些的前景会光明

    Binance币安 欧易OKX ️ Huobi火币️ 10月28日,美国市场迎来了三只全新的加密货币现货ETF,但这些产品并未涉及比特币或以太坊。 Canary率先推出两只ETF:一只追踪Hedera网络的HBAR代币(HBR),另一只则专注于老牌加密资产——莱特币(LTCC)。而由Bitwise推…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信