代码改变世界

【MongoDB】MongoDB的复制(1)

2022-06-25 13:10  abce  阅读(114)  评论(0编辑  收藏  举报

 

事务日志参数

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)