代码改变世界

随笔分类 -  MongoDB

在 MongoDB 分片集群上检查索引的一致性

2024-12-10 13:41 by abce, 51 阅读, 收藏, 编辑
摘要: 在 MongoDB 分片集群中,各分片之间索引分布不一致的情况比你想象的要常见,这是因为用户不使用 MongoS 而是直接在分片中创建索引。 在块迁移过程中,由于索引不匹配,系统无法在分片间传输数据,从而导致迁移失败。 发生这种情况时,分片日志中的典型错误信息可能如下所示: {"t":{"$date 阅读全文

MongoDB的Journal

2024-12-02 19:30 by abce, 61 阅读, 收藏, 编辑
摘要: 注:这里提到的日志(即journal)指的是 WiredTiger 提前写日志,而不是 MongoDB 日志文件。 为了在发生故障时能提供耐久性,MongoDB 使用write ahead logging 机制,提前写入磁盘上的日志(journal)文件。 WiredTiger使用检查点为磁盘上的数 阅读全文

MonogoDB 连接副本集

2024-12-02 19:29 by abce, 28 阅读, 收藏, 编辑
摘要: 要连接到副本集,可以通过指定副本集成员的主机名(或 IP 地址)和端口号。 如果无法提供副本集中主机的完整列表,可以指定副本集中的一台或多台主机,并指示驱动程序通过以下方式之一执行自动发现: · 将副本集的名称指定为 replicaSet 参数的值。 · 将 false 指定为 directConn 阅读全文

MongoDB Write Concern

2024-11-30 20:47 by abce, 77 阅读, 收藏, 编辑
摘要: 写关注(Write Concern)描述了向单独的mongod、副本集或分片集群进行写操作时,MongoDB 所要求的确认级别。在分片集群中,mongos实例会将写关注传递给分片。 注: 对于多文档事务,应在事务级别而非单个操作级别设置写关注。不要为事务中的单个写操作明确设置写关注。 如果为多文档事 阅读全文

MongoDB Read Concern

2024-11-28 19:55 by abce, 50 阅读, 收藏, 编辑
摘要: 1.读关注(read concern) 通过 readConcern 选项,可以控制从副本集和分片集群读取数据的一致性和隔离属性。 通过有效使用写关注和读关注,可以适当调整一致性和可用性保证的级别,如等待更强的一致性保证,或放宽一致性要求以提供更高的可用性。 副本集和分片群集支持设置全局默认读关注。 阅读全文

MongoDB 可以处理的连接数

2024-10-22 09:23 by abce, 82 阅读, 收藏, 编辑
摘要: 影响连接限制的因素 1.硬件资源: 服务器(CPU、内存)越强大,理论上可处理的连接数就越多。 2.MongoDB 版本: 不同版本的 MongoDB 可能有不同的默认值或最大连接数。 3.操作系统配置: 操作系统对文件描述符的限制会直接影响 MongoDB 可处理的最大连接数。每个连接都会使用一个 阅读全文

诊断MongoDB慢查询的等待事件

2024-10-15 15:50 by abce, 57 阅读, 收藏, 编辑
摘要: 长时间运行的查询会严重影响数据库的性能和响应速度。排除与这些查询相关的等待事件对于识别瓶颈和优化性能至关重要。 等待事件 MongoDB 中的等待事件发生在操作等待资源可用时。这些事件可能是由于锁、CPU 竞争或 I/O 操作等各种原因造成的。以下是可能会遇到的一些常见等待事件: 1.锁等待: 当查 阅读全文

MongoDB新的均衡策略和自动合并

2024-10-11 12:18 by abce, 68 阅读, 收藏, 编辑
摘要: 均衡器的用途 均衡器是一个后台线程,运行于配置服务器(config server)副本集的主节点。它定期检查分片中块(chunks)和数据的分布情况。如果达到某些迁移阈值,均衡器就会决定将块从一个分片迁移到另一个分片。其主要目标是在所有分片中拥有大致相同的数据量。 在繁忙的集群中,迁移的成本可能很高 阅读全文

GridFS

2024-09-22 19:05 by abce, 236 阅读, 收藏, 编辑
摘要: 1.概述 如果文件大小超过 16 MB 的 BSON 文档大小限制,可以使用 GridFS来存储和检索。GridFS 不将文件存储在一个文档中,而是大型数据进行分块处理,然后将这些切分后的小文档保存在数据库中。 2.GridFS 的工作原理 GridFS 在存储桶中组织文件,存储桶是一组包含文件块和 阅读全文

MongoDB副本集故障切换期间的回滚

2024-09-22 14:48 by abce, 107 阅读, 收藏, 编辑
摘要: 每当复制集在选举中替换主节点时,旧主节点可能包含未复制到辅助节点的文档。在这种情况下,旧的主节点会回滚这些写入内容。在回滚过程中,节点将处于 ROLLBACK 状态。处于 ROLLBACK 状态的节点有资格在选举中投票。 从 4.2 版开始,当节点进入 ROLLBACK 状态时,MongoDB 会杀 阅读全文

如何处理monogdb的慢查询

2024-09-19 13:21 by abce, 117 阅读, 收藏, 编辑
摘要: 识别慢查询 有几种方法可以用来查看mongodb中的慢查询。 1.使用profiler 如何使用profiler,需要参考之前的笔记。 清空profiler内容: > use mydb; > db.system.profile.remove(); 2.使用db.currentOp() 此方法是实时分 阅读全文

MongoDB 复制集节点间数据大小差异的处理

2024-09-04 21:39 by abce, 45 阅读, 收藏, 编辑
摘要: 在使用 WiredTiger 存储引擎的MongoDB 复制集环境中,可能会遇到主节点和辅助节点之间数据大小不一致的情况。出现这种问题时,辅助节点使用的磁盘空间会大大超过主节点。这个问题的原因是有很高比例的脏页,加上需要在内存中保存大量文档的缓存来满足"majority concern",从而导致辅 阅读全文

调整 MongoDB 以适应批量加载

2024-08-28 09:04 by abce, 29 阅读, 收藏, 编辑
摘要: 将几十亿条记录加载到 MongoDB 中,开始时加载速度还不错,但一段时间后就开始明显放缓。通过观察指标进行了一些研究,发现随着时间的推移,WiredTiger 的检查点时间越来越长。检查点时间从最初的几秒到后面的几分钟。在检查点期间,性能基本上是直线下降: WiredTiger检查点 从 Mong 阅读全文

MongoDB的历史和体系架构

2024-08-14 11:27 by abce, 122 阅读, 收藏, 编辑
摘要: MongoDB 是基于文档的开源数据库,旨在高效地存储大量数据。与在表中存储数据的传统关系型数据库不同,MongoDB 采用灵活的无 schema 设计,在类似 JSON 的文档中存储数据。 历史与版本 历史 MongoDB 由 Dwight Merriman、Eliot Horowitz 和 Ke 阅读全文

MongoDB 影响性能的 5 个配置选项及其设置方法

2024-06-03 15:15 by abce, 952 阅读, 收藏, 编辑
摘要: MongoDB 性能概述 MongoDB 性能由多个因素组成:操作系统设置、数据库配置设置、数据库内部设置、内存设置和应用程序设置。这里将重点介绍与性能有关的 MongoDB 数据库配置选项以及如何设置这些选项 MongoDB 配置选项 MongoDB 使用 YAML 文件格式的配置文件。 linu 阅读全文

MongoDB db.collection.explain()

2024-04-25 14:15 by abce, 27 阅读, 收藏, 编辑
摘要: db.collection.explain() 封装了 explain 命令,推荐使用 db.collection.explain() 来执行 explain 命令。 db.collection.explain()返回以下方法的查询计划:aggregate()、count()、find()、remo 阅读全文

在副本集和分片集群上构建 MongoDB 索引

2024-04-19 13:16 by abce, 108 阅读, 收藏, 编辑
摘要: 1.限制 留有足够的内存来容纳工作集是非常重要的。不一定所有索引都要放在内存中。 在 v4.0 之前,索引键的限制应小于 1024 字节。从 v4.2 版开始,这一限制被取消。 索引名也是如此,在使用 fcv 4.0 及以下版本的数据库中,索引名的最大长度为 127 字节。在 db v4.2 和 f 阅读全文

MongoDB 中索引的构建阶段

2024-04-09 11:24 by abce, 97 阅读, 收藏, 编辑
摘要: 1.X lock 收到创建索引的请求时,会在集合上获取排他的 X 锁。该锁会停止该集合上的所有读/写操作 {"t":{"$date":"2024-03-13T05:29:35.925+00:00"},"s":"I", "c":"INDEX", "id":20438, "ctx":"conn15536 阅读全文

MongoDB Database Profiler

2024-03-18 10:45 by abce, 124 阅读, 收藏, 编辑
摘要: 本文对应的版本是7.0。 MongoDB 的 Profiler 会将收集到的所有数据写入 system.profile 集合, system.profile 集合是一个 capped 集合,每个开启 profiler 的数据库都会有一个system.profile 集合。 Profiler 默认是关 阅读全文

MongoDB 的日志配置

2024-03-16 21:45 by abce, 1416 阅读, 收藏, 编辑
摘要: 配置日志相关的参数 默认的配置文件是/etc/mongod.conf,可以在该文件中配置与日志相关的信息。比如: more /etc/mongod.conf # where to write logging data. # Enable logging to a file systemLog: qu 阅读全文
点击右上角即可分享
微信分享提示