副本集的配置
前面提到Mongo通过副本集实现备份,或者说数据的高可用,但是默认的配置跟我们的实际配置并不会那么契合,那如何查看和设置副本集的配置文件呢?
副本集配置的小例子
查看配置
1.通过 rs.conf() 查看(任何数据库都可执行)
rs0:PRIMARY> rs.conf()
{
"_id" : "rs0",
"version" : 3,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
...
}
2.通过 replSetGetConfig 查看(只能在admin执行)
rs0:PRIMARY> db.runCommand( { replSetGetConfig: 1 } )
{
"operationTime" : Timestamp(1543108272, 1),
"ok" : 0,
"errmsg" : "replSetGetConfig may only be run against the admin database.",
"code" : 13,
"codeName" : "Unauthorized",
"$clusterTime" : {
"clusterTime" : Timestamp(1543108272, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
虽然上面也返回了一些信息,但这些其实是报错信息,报错信息提示见 errmsg 字段,它提示这个命令应该在admin数据库执行。
\# 切换到admin并执行,果然出现了配置信息
rs0:SECONDARY> use admin
switched to db admin
rs0:SECONDARY> db.runCommand( { replSetGetConfig: 1 } )
{
"config" : {
"_id" : "rs0",
"version" : 3,
"protocolVersion" : NumberLong(1),
"writeConcernMajorityJournalDefault" : true,
"members" : [修改配置
修改配置的话可以采用 rs.reconfig() 方法,比如我们把 electionTimeoutMillis 这个字段(选举超时时间)的值由10000改为9000(官网建议这个值不要超过12000)。 注: 修改配置必须在主节点上进行
注: 修改配置的过程可能会导致主节点不可用,这时也无法写入数据到主节点,所以建议在空闲时间修改配置,当修改完毕后会重新选举主节点。
副本集配置的字段说明
本人英语能力有限,若有翻译错误的地方还望在评论中指正,不胜感激!
建议看完此文章再看下官方文档,写得更详细
参考: https://docs.mongodb.com/manual/reference/replica-configuration/#rsconf.settings
Last updated
Was this helpful?