云数据库 MongoDB 支持对数据库部分参数进行调整,使得数据库特性能更好地适应业务需求。
背景信息
在日常运维过程中,快速调整数据库的部分参数可以针对性地优化数据库的查询、管理性能,适应时常变化的业务场景。同时,支持随时查看参数的修改历史记录,保证定位异常有据可依。
版本说明
当前 MongoDB 3.2及以上版本均支持对数据库参数进行修改。但每个版本可修改的参数存在差异,以控制台上展示的参数为准。
使用须知
当前参数修改功能仅支持修改后无需重启即可生效的参数,修改后需要重启生效的参数待后期版本更新。您也可通过 MongoDB 终端自行设置,重启会造成连接中断,请提前做好业务安排,谨慎操作。
更新集群架构或配置,例如,调整配置规格、调整节点、调整分片、节点升级、节点迁移等操作,不需要重复进行参数配置,系统将自动同步参数配置的数据。
前提条件
实例状态运行正常。
操作步骤
查询参数配置
1. 登录 MongoDB 控制台。
2. 在左侧导航栏,选择副本集实例或者分片实例,二者操作过程类似。
3. 在右侧实例列表中,找到目标实例。
4. 单击目标实例 ID,进入实例详情页面。
5. 选择参数配置页签,查看数据库参数配置情况。
修改参数配置
1. 在可修改参数页签,单击修改运行值。
2. 在当前运行参数值列的输入框,重新设置需修改的参数值。如下图所示。
说明:
您可以同时修改多个参数。
修改参数时,请务必根据参考值设置。
在修改后需重启列,关注是否会重启实例,重启会造成连接中断,请提前做好业务安排,谨慎操作。
参数生效范围因实例版本与架构有关,当前版本支持修改的参数如下表所示。
参数名 | 修改后是否重启 | 默认值 | 参考值 | 支持版本 | 支持实例类型 | 适用范围 | 参数解释 |
operation.profiling.slowOpThresholdMs | 否 | 100 | [0-65536] | 4.0、4.2、4.4 | 副本集、分片实例 | mongod、mongos | 设置慢查询时间判定时间,单位:毫秒。 |
operationProfiling.mode | 否 | off | [off | slowOp | all] | 4.0、4.2、4.4 | 副本集、分片实例 | mongod | 该参数用于设置数据库的操作性能分析模式。通过设置不同的模式,可以记录数据库操作的性能数据,以便进行性能优化和故障排查。该参数有以下几种可选值: off:关闭操作性能分析。 slowOp:记录慢操作,即执行时间超过阈值的操作,默认阈值为 100 毫秒。 all:记录所有操作的性能数据。 |
setParameter.cursorTimeoutMillis | 否 | 600000 | [1-2147483647] | 3.2、3.6、4.0、4.2、4.4 | 副本集、分片实例 | 3.2与3.6:mongod4.0、4.2、4.4:mongod、mongos | 该参数用于设置游标的最大空闲时间,即游标在一定时间内没有被使用时会被自动关闭,释放相关资源。默认情况下,该参数的值为 10 分钟。如果需要延长或缩短游标的超时时间,可以通过修改该参数的值来实现。需要注意的是,如果将该参数设置为 0,则表示禁用游标超时机制,游标将一直保持打开状态,直到客户端主动关闭为止。 |
setParameter.intenalQueryExecMaxBlockingSortBytes | 否 | 33554432 | [33554432-268435456] | 4.0、4.2、4.4 | 副本集、分片实例 | mongod、mongos | 该参数控制了 MongoDB 在执行排序操作时所能使用的最大内存量。当 MongoDB 执行一个需要排序的查询时,它可能需要在内存中对结果集进行排序。如果结果集的大小超过了所设置的值,MongoDB 就会使用磁盘来进行排序操作,这可能会导致性能下降。单位:Byte。 |
setParameter.maxTransactionLockRequestTimeoutMillis | 否 | 5 | [0-60] | 4.0、4.2、4.4 | 副本集、分片实例 | mongod | 该参数控制了 MongoDB 事务在等待获取锁时的最大超时时间。当一个事务需要获取一个锁时,如果该锁已被其他事务持有,那么该事务就会等待一段时间,尝试获取该锁。如果等待时间超过了该参数设置的值,该事务就会抛出一个超时异常。单位:毫秒。 |
setParameter.transactionLifetimeLimitSeconds | 否 | 60 | [5-300] | 4.0、4.2、4.4 | 副本集、分片实例 | mongod | 设置单个事务的最长生命周期,单位:秒。当一个事务开始执行时,MongoDB 会为该事务分配一个唯一的事务 ID,并记录该事务的开始时间。如果该事务在所设置的时间内没有完成,MongoDB 就会自动回滚该事务并释放相关资源。 |
setParameter.failIndexKeyTooLong | 否 | true | [true | false] | 3.2、3.6、4.0 | 副本集、分片实例 | mongod | 设置是否限制索引键的长度。 如果该参数被设置为 true,当MongoDB 创建一个索引时,如果该索引键的长度超出了 MongoDB所支持的最大限制,MongoDB 就会抛出一个错误并拒绝创建该索引 |
balance.window | 否 | NULL | [00:00 | 23:00] | 4.0、4.2、4.4 | 分片实例 | mongos | MongoDB 集群均衡操作用于将集群中的数据尽可能均匀地分布到各个节点上,以提高集群的性能和可用性。该参数指定 MongoDB 在多长时间内对集群进行一次均衡操作,以确保数据在节点之间的均匀分布。 |
openBalance.window | 否 | false | [true | false] | 4.0、4.2、4.4 | 分片实例 | mongos | 启用或禁止 balance 窗口。 |
3. 单击确定,完成修改。
查询参数配置修改记录
1. 在参数配置页签,单击修改历史。
2. 查看参数修改的历史记录,您可以查看参数修改前后的值、修改状态以及修改时间。