代码改变世界

随笔分类 -  MongoDB

MongoDB 重新同步复制集成员

2024-03-16 15:57 by abce, 107 阅读, 收藏, 编辑
摘要: 测试的复制集因为磁盘空间的问题,落后主节点太多,数据不同步: {"t":{"$date":"2024-02-19T16:13:06.387+08:00"},"s":"I", "c":"REPL", "id":21799, "ctx":"ReplCoordExtern-0","msg":"Sync s 阅读全文

MongoDB 超时设置

2024-01-02 14:49 by abce, 1215 阅读, 收藏, 编辑
摘要: MongoDB 驱动程序为 Mongo 客户端提供了多个选项,用于处理使用过程中可能出现的不同网络超时错误。在某些情况下,这些选项的默认值可能不适合你的使用情况,因此,了解不同的 MongoClient 超时选项对于避免应用出现不可预知的挂起并提高性能至关重要。 在抽象层面上,每当使用 MongoC 阅读全文

MongoDB 通配符索引 (wildcard index) 的利与弊

2023-12-27 20:16 by abce, 131 阅读, 收藏, 编辑
摘要: MongoDB 支持在单个字段或多个字段上创建索引,以提高查询性能。MongoDB 支持灵活的模式,这意味着文档字段名在集合中可能会有所不同。使用通配符索引可支持针对任意或未知字段的查询。 ·一个集合中可以创建多个通配符索引 ·通配符索引可以覆盖与集合中其他索引相同的字段 ·通配符索引默认省略 _i 阅读全文

MongoDB 7.0 动态 WiredTiger tickets

2023-12-16 13:46 by abce, 128 阅读, 收藏, 编辑
摘要: 在WiredTiger存储引擎中,WiredTiger tickets提供了并发控制机制。这些tickets分为读tickets和写tickets。当多个操作,比如读和写尝试并发访问数据库,WiredTiger使用tickets来确保这些操作不会冲突,从而保证数据的完整性和性能。WiredTiger 阅读全文

MongoDB 7.0 分片键分析助手--analyzeShardKey()

2023-12-16 13:45 by abce, 110 阅读, 收藏, 编辑
摘要: 分片键是群集的关键组成部分,因为它决定了数据在分片中的分布。 分片集群的大部分问题都与错误的分片键选择有关;对于一个好的分片键,必须注意以下几点: ·分片键的 cardinality ·分片键值出现的频率 ·潜在分片键值是否单调增长 ·分片查询模式 在老版本中,分片键是不可变的,但现在(+4.4), 阅读全文

MongoDB 7.0 元数据检查

2023-12-16 13:44 by abce, 62 阅读, 收藏, 编辑
摘要: 除了分片键分析器之外,元数据检查器(checkMetadataConsistency())也是 DBA 工作中的一项额外工具。 分片集群很好,但同时也是一项复杂的功能,尤其是当我们开始尝试了解它是如何在后台工作以符合一致性等要求时。 对于需要管理分片集群的人来说,很可能会遇到元数据不一致的问题:集合 阅读全文

MongoDB WiredTiger的读/写ticket

2023-10-18 10:09 by abce, 285 阅读, 收藏, 编辑
摘要: 在WiredTiger中,读/写ticket控制着并发性。也就是说,读/写ticket控制着有多少读写操作可以同时在存储引擎上执行。这是WiredTiger特有的设置,因此不会影响数据库中并发操作的数量。MongoDB有单独的机制来保存操作进度,可以退让给其他操作。 默认值 读/写ticket的默认 阅读全文

mongodb报错not authorized on testdb to execute command

2023-08-31 11:01 by abce, 1680 阅读, 收藏, 编辑
摘要: 用户反馈说没有权限,报错如下: not authorized on testdb to execute command { find: "Schedule", filter: {}, skip: 0, limit: 20, maxTimeMS: 60000, lsid: { id: UUID("41 阅读全文

MongoDB的性能监控和故障排除的强大工具FTDC(Full-Time Diagnostics Capture)

2023-08-20 21:07 by abce, 718 阅读, 收藏, 编辑
摘要: MongoDB的FTDC(全时诊断捕获)是一项强大的诊断功能,可捕获关于MongoDB数据库性能、操作和行为的详细信息。它为数据库的运行提供了有价值的深入洞察,有助于性能监控和故障排除。 在本文中,将深入探讨MongoDB的FTDC(全时诊断数据捕获)功能的强大功能。将探讨它如何捕获有关MongoD 阅读全文

mongostat命令的简单使用

2023-08-01 15:28 by abce, 697 阅读, 收藏, 编辑
摘要: 有点类似linux平台的vmstat命令,只不过mongostat输出的是mongodb实例的相关信息。 在命令行下使用,会间隔固定时间(默认1s)获取mongodb的当前运行状态,并输出结果。 例如:每秒打印一次,共打印20次​ # 连接到复制集 $ mongostat --host=20.20. 阅读全文

mongodb索引大小查看

2023-07-31 13:21 by abce, 139 阅读, 收藏, 编辑
摘要: 查看数据库中索引总大小 > db.stats() { "db" : "abce", "collections" : 258, "views" : 0, "objects" : 3869336, "avgObjSize" : 23033.87034752216, "dataSize" : 891257 阅读全文

MongoDB运行环境的十个建议

2023-07-29 13:50 by abce, 65 阅读, 收藏, 编辑
摘要: 1.生产环境始终开启身份验证这不是性能建议,而是安全建议。安装后建议创建admin用户,重启mongodb实例并开启身份验证: > use admin switched to db admin > db.createUser({ ... user: "abce", ... pwd: "passwor 阅读全文

MongoDB升级

2023-07-18 09:51 by abce, 376 阅读, 收藏, 编辑
摘要: MongoDB常用的环境1.单机2.复制集3.分片集群 对应的组成部分 这让我们了解了需要升级的有哪些内容。​ 但我们还必须考虑MongoDB内置的复制功能。这也将影响我们的升级过程。 MongoDB升级的基本步骤1.备份2.检查先决条件,根据实际需要进行解决·根据需要添加资源·下载新的二进制文件· 阅读全文

mongodb报错Sort exceeded memory limit of 104857600 bytes

2023-07-14 17:04 by abce, 851 阅读, 收藏, 编辑
摘要: mongodb运行过程中,遇到错误信息: 2023-07-14T09:29:33.853 ERR Failed to QueryBsPoolUnivStat error="(QueryExceededMemoryLimitNoDiskUseAllowed) Executor error during 阅读全文

MongoDB内存使用高的原因分析

2023-06-09 15:14 by abce, 986 阅读, 收藏, 编辑
摘要: WT的缓存设置(cacheSizeGB)只是控制WT存储引擎使用到的内存,而不是整个mongod实例使用的内存。 MongoDB/WT配置中,还有很多地方需要使用内存: ·WT压缩磁盘存储,但是内存的数据没有压缩 ·WT缺省不是每次提交都是fsync操作,因此日志文件也是在内存中。此外,为了更高效的 阅读全文

设置隐藏节点和不可投票节点

2023-04-24 08:53 by abce, 140 阅读, 收藏, 编辑
摘要: 配置隐藏节点 复制集中隐藏节点不能变成主,但是可以参加选举。 隐藏节点,最常用的场景是延迟复制。如果不想某个节点变成主节点,将priority设置成0即可 如果设置了settings.chainingAllowed,支持辅助节点从另外的复制节点做数据同步,mongodb默认是优先讯在非隐藏节点来做数 阅读全文

MongoDB复制集环境滚动构建索引

2023-04-12 09:38 by abce, 79 阅读, 收藏, 编辑
摘要: 滚动构建索引每次最多取出一个复制集成员,从辅助成员开始,并在该成员上以standalone方构建索引。滚动索引构建至少需要一次副本集选举。 考虑点 1.唯一性索引 使用滚动方式构建唯一性索引,你必须停止集合上所有写操作。否则,只能在主节点上使用db.collection.createIndex()创 阅读全文

WiredTiger的日志和检查点机制

2023-04-11 09:35 by abce, 604 阅读, 收藏, 编辑
摘要: 1.日志 ·对于每个写操作,mongodb将改变写入日志文件,即事务日志文件。写入的频率收到storage.journal.commitIntervalMs参数的控制。默认是100毫秒,可取值的范围是1--500毫秒。 ·WT缓存中的页数据也会被标记为脏数据 日志文件的格式示例: $ wt prin 阅读全文

MongoDB-如何将BSON文档转换为人类可读的格式

2023-04-04 13:19 by abce, 650 阅读, 收藏, 编辑
摘要: 二进制Javascript对象表示法(BSON)是一种以二进制编码串行化的JSON文档。JSON更容易理解,因为它是人类可读的,但与BSON相比,它支持的数据类型更少。 BSON已经被扩展,可以添加一些可选的非json原生数据类型,比如日期和二进制数据。MongoDB在内部和网络上以BSON格式存储 阅读全文

MongoDB中的Capped Collection

2023-04-03 09:47 by abce, 136 阅读, 收藏, 编辑
摘要: capped collection是固定大小的结合,支持基于插入顺序的插入和检索文档的高吞吐量操作。Capped collections的工作方式类似循环buffer:一旦一个集合填满了它分配的空间,它就会通过覆盖集合中最老的文档来为新文档腾出空间。 作为capped collection的替代方案 阅读全文
点击右上角即可分享
微信分享提示