对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

replSetGetConfig(数据库命令)

replSetGetConfig

返回描述 副本集 当前 配置 的文档。

提示

在 mongosh 中,该命令也可通过 rs.conf() 辅助方法运行。

辅助方法对 mongosh 用户来说很方便,但它们返回的信息级别可能与数据库命令不同。如果不追求方便或需要额外的返回字段,请使用数据库命令。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M0 和 Flex 集群不支持此命令。有关更多信息,请参阅不支持的命令。

要运行,必须针对admin数据库发出 { replSetGetConfig }。 该命令的语法如下:

db.adminCommand( { replSetGetConfig: 1, commitmentStatus: <boolean>, comment: <any> })
字段
类型
说明

replSetGetConfig

any

任何值

布尔

可选。 指定true以在输出中包含commitmentStatus字段。 commitmentStatus输出字段指示副本集之前的重新配置是否已提交,以便副本集准备好再次重新配置。 有关详细信息,请参阅commitmentStatus 输出字段。

在主节点上运行命令时,只能指定commitmentStatus: true选项。 如果在从节点上使用commitmentStatus: true运行,该命令会出错。

comment

any

可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:

注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。

mongosh提供了封装 命令的rs.conf() replSetGetConfig方法:

rs.conf();

以下是在主节点 (primary node in thereplSetGetConfig replica set)节点上使用 commitmentStatus: true 运行的 命令的输出示例:

{ "config" : { "_id" : "myRepl", "version" : 180294, "term" : 1, "protocolVersion" : Long(1), "writeConcernMajorityJournalDefault" : true, "members" : [ { "_id" : 0, "host" : "m1.example.net:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "secondaryDelaySecs" : Long(0), "votes" : 1 }, { "_id" : 1, "host" : "m2.example.net:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "secondaryDelaySecs" : Long(0), "votes" : 1 }, { "_id" : 2, "host" : "m3.example.net:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "secondaryDelaySecs" : Long(0), "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatIntervalMillis" : 2000, "heartbeatTimeoutSecs" : 10, "electionTimeoutMillis" : 10000, "catchUpTimeoutMillis" : -1, "catchUpTakeoverDelayMillis" : 30000, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 }, "replicaSetId" : ObjectId("5eaa1e9ac4d650aa7817623d") } }, "commitmentStatus" : true, "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1588212091, 1), "signature" : { "hash" : BinData(0,"veOHa2mOeRTzuR0LKqnzGxWV77k="), "keyId" : Long("6821298283919441923") } }, "operationTime" : Timestamp(1588212091, 1)}
字段
说明

config

副本集配置。 有关每个配置设置的说明,请参阅自管理副本集配置。

一个布尔值,表示最近的副本集配置是否已提交;即

  • 主节点的最新副本集配置已传播到大多数节点,并且

  • 在新配置中,使用先前配置对副本集进行的最后一次写入操作为majority-committed 。

如果true ,则配置已提交,可以重新配置副本集。 要重新配置副本集,请参阅replSetReconfig命令或mongosh方法rs.reconfig() 。

如果false ,则配置尚未提交,并且无法重新配置副本集。

ok

一个数字,表示命令是成功 ( 1 ) 还是失败 ( 0 )。

operationTime
$clusterTime

随副本集的每个命令返回。 有关详细信息,请参阅db.adminCommand Response 。