oplog的大小。默认是WT存储引擎的空闲磁盘空间的5%。
调优参数有:oplogSizeMB、storage.oplogMinRetentionHours
复制集的写关注(write concern)配置
{ w: <value>, j: <boolean>, wtimeout: <number> }
例如,在超时前要求大多数节点都写入了数据:
{ writeConcern: { w: majority, wtimeout: 2000 } }
{ writeConcern: { w: majority, j: true, wtimeout: 2000 } }
这里j:true表示需要等到数据写入日志磁盘;j:false表示需要等到数据写入内存。
如果没有指定j参数,则取决与参数writeConcernMajorityJournalDefault,如果writeConcernMajorityJournalDefault=true,则需要等待将数据写入磁盘;否则只需要数据写入内存即可。
MongoDB默认将读请求写到主节点。在复制集中,readPreference参数提供了对读请求配置选项,readPreference参数的取值有:
·Primary:所有读请求发送到主节点
·primaryPreferred:大多数情况下,将读请求发送到主节点;主节点不可达的时候,就发送到从节点
·Secondary:所有读请求发送到从节点
·secondaryPreferred:大多数情况下,将读请求发送到从节点;从节点不可达的时候,就发送到主节点
·Nearest:读请求发送到最近可达的节点
·常规辅助节点
·仲裁节点:不存储数据,只是用于选举
·隐藏节点
·延迟复制节点:延迟复制节点必须是隐藏节点
·Priority=0的节点:也是常规辅助节点,但是不会参与选举
设置示例:
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true cfg.members[0].slaveDelay = 1800 rs.reconfig(cfg)