首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

《一起学mongodb》之第三卷分片集群

前言 上一篇介绍了 mongo 的三种部署方式,「单点、主从、副本集」三种部署方式,今天就跟大家聊聊最后一种「分片集群」的方式,分片集群也是 mongo 能够作为万亿级别数据库的核心魅力所在,也有一句话说到...: 「连分片集群都不知道,你还好意思说自己用过 mongo ?」...shard:每个 Shard 就相当于一个 mongod 数据库实例,用于存储数据,整个数据库会「分散在不同的 shard 当中」,每一个分片都满足高可用,一般都是一主二从(建议部署位副本集架构),分片的个数最大可以到...「不可以」 MongoDB 中没有对集合分片后更改片键的自动支持。如果在集合分片后必须更改片键,可以按如下方式操作: 将MongoDB中的所有数据转储为外部格式,比如可以先放在 mysql 中。...删除原始分片集合。 使用新的的片键配置分片。 预分割片键范围以确保初始均匀分布。 将转储的数据恢复到 MongoDB 中。 mongos 是如何处理连接的?

52720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MongoDB常用工具和集合方法

    tcpdump mongodump MongoDB数据备份工具 mongoimport Mongodb数据导入工具 mongoexport Mongodb数据导出工具 bsondump 将 bson 格式的文件转储为...,如果使用了 sharding 功能,则应用程序连接的是 mongos 而不是 mongod mongo 客户端命令行工具,其实也是一个 js 解释器,支持 js 语法 MongoDB集合方法 方法名...描述 db.collection.aggregate() 聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果 db.collection.bulkWrite() 批量写入 db.collection.createIndex...() 修改集合中的多条数据 db.collection.update() 修改集合中的数据 db.collection.updateOne() 修改集合中的一条数据 db.collection.validate...() 设置从库可以进行数据查询操作 Mongo.setReadPref() Mongo.getReadPrefTagSet() Mongo.getReadPrefMode() Mongo.getDB

    1.2K30

    gpcrondump与gpdbrestore命令使用

    Master的备份文件包含用于创建数据库模式的SQL命令。 Segment的数据转储文件包含将数据装载到表中的SQL语句。Segment的转储文件被使用gzip压缩。...-c(首先清除旧的转储文件) 在执行转储之前清除旧的转储文件。默认情况下不清除旧转储文件。这将删除db_dumps目录中的所有旧转储目录, 除了当前日期的转储目录。...-o(仅清除旧转储文件) 仅清除旧转储文件,但不运行转储。这将删除除当前日期的转储目录之外的最旧的转储目录。其中的所有转储集 目录将被删除。 --oids 在转储数据中包含对象标识符(oid)。...-v(显示实用程序版本) 显示此实用程序的版本,状态,上次更新日期和校验和。 -w dbid [,...](仅备份某些段) 指定要备份为段的dbid的逗号分隔列表的一组活动段实例。...: 表名 prefixname : 前缀名字 注意-t或-T不能同时与-s使用 2、备份指定文件表的集合 gpcrondump -a -x databases --prefix prefixname

    1.7K50

    计划任务及日志管理

    ; Linux中的工具或服务都是遵循配置文件中的规则工作的; /etc/rsyslog.conf: 这个文件定义了系统中所有的服务或者工具,它们所产生的日志,根据特定的级别需要存储在特定的位置...当日志文件为空时,不进行轮转 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件...olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir 转储后的日志文件和当前日志文件放在同一个目录下...指定转储周期为每月 rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 dateext 使用当期日期作为命名格式...当日志文件 >= log-size 的时候就转储。

    75510

    使用MongoDB进行分片

    • 在对集合进行分片后是否可以更改片键? • 为什么文档没有分布到各个分片? • mongos是如何检测到分片集群配置更改的? • 日志中出现的writebacklisten是什么意思?...有时是适合的。但是,如果您的数据集适合放在单个服务器,则应该以非分片部署作为分开始,因为数据集很小,分片几乎没有优势。 在对集合进行分片后是否可以更改片键? 不可以。...MongoDB中没有对集合分片后更改片键的自动支持。这一现实情况强调了选择好的片键的重要性。如果在集合分片后必须更改片键,最佳选择是: • 将MongoDB中的所有数据转储为外部格式。...• 删除原始分片集合。 • 使用更理想的片键配置分片。 • 预分割(pre-split)片键范围以确保初始均匀分布。 • 将转储的数据恢复到MongoDB中。...要返回mongos所使用的所有对外连接池相关的聚合统计信息,请将mongo shell 连接 到mongos,然后运行 connPoolStats命令: db.adminCommand (“connPoolStats

    1.2K40

    mongodb存储的数据类型(redis存储数据类型)

    local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。...此外,从三各特定类型的集合中查询数据,必然在一个混合的集合中查询特定数据要快的多,且更有利于磁盘寻道和索引构建。 合法的集合名 集合名不能是空字符串””。...该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 Date { “x” : new Date() } 日期时间。用 UNIX 时间格式来存储当前日期或时间。...你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 Object ID { “x” : ObjectId() } 对象 ID。用于创建文档的 ID。...用于存储正则表达式。 下面说明下几种重要的数据类型 1.日期 与JavaScript使用Date对象一样,使用 new Date()创建日期对象,或者使用ISODate()创建日期对象。

    3.7K11

    做测试的一定要知道EFI Shell 命令参考

    date 显示当前日期或设置系统 (nPartition) 的日期。 dimmconfig 取消配置(或重新配置)内存 (DIMM)。 err 显示(或更改)错误级别。...variable 保存(或恢复)特定的 EFI 变量。 ver 显示版本信息。 设备、驱动程序和句柄命令 — EFI Shell 用于管理设备、驱动程序和句柄的命令。...dblk BlkIo 设备的 Hex 转储。 devices 显示 EFI 驱动程序管理的设备。 devtree 显示设备树。 dh 转储句柄信息。 disconnect 断开驱动程序与设备的连接。...guid 转储已知的 GUID ID。 lanaddress 显示 MAC 地址。 load 加载 EFI 驱动程序。 map 将短名称映射到设备路径。 openinfo 显示指定句柄的开放协议。...内存命令 — EFI Shell 用于列出和管理内存、EFI 变量和 NVRAM 详细信息的命令。 default 设置缺省的 NVRAM 值。 dmem 转储内存或内存映射的 IO。

    1.5K10

    从零开始学PostgreSQL-工具篇: 备份与恢复

    -x, --no-privileges # 不转储权限(grant/revoke)。 --binary-upgrade # 仅用于升级工具。...转储名称以 或 开头且以 结尾的所有集合,排除名称包含单词test :的集合 pg_dump -U postgres -h 127.0.0.1 -p 5432 -W -n 'west*gsm' -...ts_*开头的集合之外的所有集合 pg_dump -U postgres -h 127.0.0.1 -p 5432 -W -T 'ts_*' mydb > db.sql 转储具有混合大小写名称的单个表...仅转储角色,不包括数据库或表空间 -s, --schema-only # 仅转储模式,不包括数据 -S, --superuser=NAME # 超级用户用户名,用于转储中...pg_dump 用于单个数据库的备份和恢复,pg_dumpall 用于整个集群的备份,pg_basebackup 用于物理备份。 备份策略:制定定期备份计划,并测试恢复过程,确保备份文件可用。

    35410

    SAP WM模块不常用事务代码之LT1A(修改转储单抬头)

    SAP WM模块不常用事务代码之LT1A(修改转储单抬头)笔者玩转SAP WM也有些年头了,也做过几个项目上的WM顾问。...对于WM层面的转储单(TO单),笔者的认知里一直都是,我们可以创建TO单,确认转储单,取消转储单,从未关注过是否可以修改TO单。...这让笔者有点懵圈,之前从未关注过,研究过如何修改TO单的。笔者花费了一些时间去查资料,得知存在一个事务代码LT1A可以用于修改某个TO单的HEADER信息的。...执行事务代码LT1A,输入仓库号和转储单号,回车,进入如下的修改界面,事实上,这个修改界面里所有的核心栏位都是不允许修改的,只能修改一些不常用的边角料栏位。...比如WM计划时间,计划时间外部系统,WM转储单的实际时间,开始日期,结束日期等。

    12910

    EFI Shell 命令参考

    date 显示当前日期或设置系统 (nPartition) 的日期。 dimmconfig 取消配置(或重新配置)内存 (DIMM)。 err 显示(或更改)错误级别。...variable 保存(或恢复)特定的 EFI 变量。 ver 显示版本信息。 设备、驱动程序和句柄命令 — EFI Shell 用于管理设备、驱动程序和句柄的命令。...dblk BlkIo 设备的 Hex 转储。 devices 显示 EFI 驱动程序管理的设备。 devtree 显示设备树。 dh 转储句柄信息。 disconnect 断开驱动程序与设备的连接。...guid 转储已知的 GUID ID。 lanaddress 显示 MAC 地址。 load 加载 EFI 驱动程序。 map 将短名称映射到设备路径。 openinfo 显示指定句柄的开放协议。...内存命令 — EFI Shell 用于列出和管理内存、EFI 变量和 NVRAM 详细信息的命令。 default 设置缺省的 NVRAM 值。 dmem 转储内存或内存映射的 IO。

    1.7K10

    超硬核的MongoDB基础讲解。《记得收藏,不然看着看着就找不到了》

    一些特定的服务器端命令也只能从这个数据库运行。 local: 这个数据永远不会被复制, 可以用来存储限于本地单台服务器的任意集合。...config: 当Mongo用于分片设置时, config数据库在内部使用, 用于保存分片的相关信息。...文档键命名规范: 键不能含有\0(空字符), 这个字符用来表示键的结尾。 .和$有特别的意义, 只有在特定环境下才能使用。 以下划线”_”开头的键是保留的(不是严格要求的)。...根据用户的服务器, 可分为32位或64位 Boolean 布尔值, 用于存储布尔值(真/假) Double 双精度浮点值, 用于存储浮点值 Arrays 用于将数组或列表或多个值存储为一个键 Object...用于内嵌文档 Null 用于创建空值 Date 日期时间, 用户可以指定自己的日期时间, 创建Date对象, 传入年月日信息 Binary Data 二进制数据, 用于存储二进制数据. 4、MongoDB

    77520

    如何在.NET应用程序中分析CPU使用率过高的问题

    数据采集 收集用户模式进程转储的最简单方法是使用Debug Diagnostic Tools v2.0[5]或仅使用DebugDiag。...DebugDiag具有一组用于收集数据(DebugDiag集合)和分析数据(DebugDiag分析)的工具。...描述的规则将创建一组小型转储文件,这些文件的大小将非常小。最终转储将是具有完整内存的转储,并且该转储会更大。现在,我们只需要等待高CPU事件再次发生即可。...将转储文件保存在所选文件夹中后,我们将使用DebugDiag Analysis工具来分析收集的数据: 1.选择性能分析器。 ? 图片 2.添加转储文件。 ? 图片 3.开始分析。...根据转储信息,问题出在字典的FindEntry方法上: ? 图片 如果查看字典的FindEntry 实现,[9]我们可以看到该方法遍历内部结构(存储桶)以查找值。

    2.6K30

    Linux日志切割工具Logrotate配置详解

    用于分割日志文件,压缩转存、删除旧的日志文件,并创建新的日志文件,下面就对logrotate日志轮转的记录: 1....就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式 compress //是否通过gzip压缩转储以后的日志文件...Logrotate中其他可配置参数,具体如下: compress //通过gzip 压缩转储以后的日志 nocompress //不做gzip压缩处理 copytruncate //用于还在打开中的日志文件...必须独立成行 daily //指定转储周期为每天 weekly //指定转储周期为每周 monthly //指定转储周期为每月 rotate count //指定日志文件删除之前转储的次数,0 指没有备份...当日志文件 >= log-size 的时候就转储。

    16.7K52

    【译】创建和分析 Java 堆转储(Heap Dumps)

    在 OutOfMemoryErrors 上自动生成堆转储 此选项用于在发生 OutOfMemoryError 时自动捕获堆转储。...生成堆转储的其他方法 生成堆转储的其他一些方法是: jcmd:jcmd 用于向JVM 发送诊断命令请求。它被打包为 JDK 的一部分。它可以在 Java 安装的 \bin 文件夹中找到。...分析堆转储(Heap Dump) 我们在堆转储中寻找的是: 内存使用率高的对象 用于识别未释放内存的对象的对象图 可达和不可达对象 Eclipse Memory Analyzer (MAT) 是分析 Java...支配树中的累积对象:这提供了一些关于累积内容的信息,这些内容是此处的 GroceryProduct 对象的集合。 总结 在这篇文章中,我们介绍了堆转储,它是 Java 应用程序运行时对象内存图的快照。...然后我们查看了使用 Eclipse Memory Analyzer 进行堆转储分析的一些基本概念:大对象、GC 根、浅堆与保留堆以及支配树,所有这些都将帮助我们确定特定内存问题的根本原因。

    1.4K40

    003.MongoDB主要概念

    一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器; local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合; config: 当Mongo用于分片设置时...这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。 以下划线"_"开头的键是保留的(不是严格要求的)。...该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。...你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。 Object ID 对象 ID。用于创建文档的 ID。 Binary Data 二进制数据。用于存储二进制数据。 Code 代码类型。...3.4 时间戳 BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。

    1.3K30

    Web-第三十三天 MongoDB初级学习

    比如现在有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。...一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。...local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。...该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。 Date 日期时间。用 UNIX 时间格式来存储当前日期或时间。...时间戳 BSON 有一个特殊的时间戳类型用于 MongoDB 内部使用,与普通的 日期 类型不相关。 时间戳值是一个 64 位的值。

    2.4K20

    Nginx 使用 logrotate 进行日志滚动

    用于分割日志,删除旧的日志,并创建新的日志文件,起到日志滚动的作用。 logrotate 是基于 linux 的 CRON 来运行的,其脚本是 /etc/cron.daily/logrotate。...weekly 指定转储周期为每周 monthly 指定转储周期为每月 dateext 使用当期日期作为命名格式,如:access.log-20201121 dateformat ....不压缩 copytruncate 用于还在打开中的日志文件,把当前日志备份并截断 nocopytruncate 备份日志文件但是不截断 create mode owner group 转储文件,使用指定的文件模式创建新的日志文件...missingok 如果日志丢失,不报错继续滚动下一个日志 notifempty 如果是空文件的话,不转储 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件...在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 size log-size 当日志文件到达指定的大小时才转储

    8.3K20
    领券