副本集指南(二)
2015-09-16 19:59
204 查看
二、副本集成员配置
1、调整成员的优先级
成员的优先级设置可以影响primary选举的结果,使用这个设置可以保证一些成员更容易被选举为primary,或者永远不能成为primary。 你可以通过更新副本集配置中的成员数组来修改优先级。数组以0开始,不要和成员的_id混淆。 为了阻止一个成员成为primary,你可以设置它的优先级为0。隐藏成员、延迟成员、仲裁者的优先级,都是0。 调整优先级,会使当前的primary下台,导致一次选举。
step1 复制副本集的参数到一个变量中
cfg=rs.conf()
step2 修改每个成员的优先级数值。
cfg.members[0].priority=0.5 cfg.members[1].priority = 2 cfg.members[2].priority = 2
step3 应用新的副本集参数
rs.reconfig(cfg)
2、阻止一个成员变为primary
副本集中,默认时,每一个成员都可以被选举为primary。你可以使用优先级为0来避免。无法被选举为primary的成员无法触发选举。其他方面,这些成员和所有非primary成员一致。
step1 复制副本集的参数到一个变量中
cfg=rs.conf()
step2 修改每个成员的优先级数值。
cfg.members[3].priority=0
step3 应用新的副本集参数
rs.reconfig(cfg)
3、配置一个隐藏副本集成员
隐藏成员作为副本集的一部分,不能够成为primary,并且对其他应用端不可见。隐藏成员可以投票。 隐藏成员可以用于支持延迟成员,如果你仅仅只想阻止一个成员变为primary,可以配置其优先级为0。如果chainingAllowed设置允许secondary成员从其他secondary成员复制,MongoDB默认优先挑选非隐藏成员作为复制目标。MongoDB仅仅将隐藏成员作为最后的手段。如果你想让secondary成员从隐藏成员处复制,需要replSetSyncFrom指令来覆盖默认的复制目标。
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true rs.reconfig(cfg)
4、配置一个延迟成员
延迟成员,能够延迟读取primary的oplog。 延迟成员一般是优先级为0,防止被选举为primary;一般被隐藏,防止成为其他primary的复制目标。
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true cfg.members[0].slaveDelay = 3600 rs.reconfig(cfg)
5、配置一个无投票权的成员
可以禁止成员的投票权,这并不会影响其他成员对其投票选举为primary。通过此方法,可以达到选举的大多数效果。
cfg = rs.conf() cfg.members[3].votes = 0 cfg.members[4].votes = 0 cfg.members[5].votes = 0 rs.reconfig(cfg)
6、将一个secondary成员转变为仲裁者
如果你有一个成员不再被需要了,你可以将其转变为仲裁者,来选举primary。
step1 关闭此secondary成员
step2 在primary上,使用mongo shell从副本集中移除该secondary成员
rs.remove("<hostname><:port>")
step3 检查副本集设置,是否已经移除成功
rs.conf()
step4 清空或转移目标secondary的数据
mv /data/db /data/db-old
step5 创建一个新目录,来启动该secondary的mongod实例
mkdir /data/db mongod --port 27021 --dbpath /data/db --replSet rs
step6 在primary上,使用mongo shell添加该secondary为仲裁者
rs.addArb("<hostname><:port>")
step7 检查
rs.conf()
相关文章推荐
- 副本集指南(三)
- 基于Django框架的web设计指南(1)
- Windows Server 2008 R2 WEB 服务器安全设置指南
- 微信公众号开发-接入指南
- [置顶] Android框架源码阅读指南(博客专栏)
- chrome源码学习之知识体系指南
- mongodb指南(翻译)(二十) - developer zone - 索引(四)地理信息索引(转载)
- 新手看招 Unix和Linux下C语言学习指南
- 性能测试学习内容指南
- TypeScript学习指南--目录索引
- AFNetworking 3.0迁移指南
- Asterisk1.4安装指南
- Eclipse Polish 2.1 安装指南
- UVALive 3211 (训练指南)图论例题9 2-sat+二分
- VMware中三种网络模式设置指南
- go语言web开发 排坑指南
- AJAX.NET用户开发指南
- OpenSolaris安装指南
- ACM进阶指南