Mongodb 副本集的节点详细操作
副本集操作
官方文档:https://docs.mongodb.com/v3.2/reference/method/js-replication/
1 rs.add()
{
_id: <int>,
host: <string>, // required
arbiterOnly: <boolean>,
buildIndexes: <boolean>,
hidden: <boolean>,
priority: <number>,
tags: <document>,
slaveDelay: <int>,
votes: <number>
}
Add a Secondary to a New Replica Set //添加一个新节点到新的副本集
rs.add( { host: "mongodbd4.example.net:27017" } )
rs.add( "mongodbd4.example.net:27017" )
Add a Secondary to an Existing Replica Set//添加一个新节点到已经存在的副本集
rs.add( { host: "mongodbd4.example.net:27017", priority: 0, votes: 0 } )
rs.status()
Reconfigure the replica set to update the votes and priority of the new member //配置副本集的投票属性
var cfg = rs.conf();
cfg.members[n].priority = 1; // Substitute the correct array index for the new member
cfg.members[n].votes = 1; // Substitute the correct array index for the new member
rs.reconfig(cfg)
WARNING //使用rs.reconfig()命令后,当前的主节点会down掉并发生选举
The rs.reconfig() shell method can force the current primary to step down, which causes an election. When the primary steps down,
the mongod closes all client connections. While this typically takes 10-20 seconds, try to make these changes during scheduled maintenance periods.
Avoid reconfiguring replica sets that contain members of different MongoDB versions as validation rules may differ across MongoDB versions.
Add a Priority 0 Member to a Replica Set //加入新节点,优先级为0
rs.add( { host: "mongodbd4.example.net:27017", priority: 0 } )
Add an Arbiter to a Replica Set //加入仲裁节点
rs.add( { host: "10.15.7.114:28003", arbiterOnly: true } )
添加备份节点
hidden(成员用于支持专用功能):这样设置后此机器在读写中都不可见,并且不会被选举为Primary,但是可以投票,一般用于备份数据
MyMongo:PRIMARY> rs.remove("10.15.7.114:28005"); #删除原来的第二个仲裁节点
MyMongo:PRIMARY> rs.add({host:"10.15.7.114:28005","priority":0,"hidden":true}) #设置为备份节点
添加延迟节点
Delayed(成员用于支持专用功能):可以指定一个时间延迟从primary节点同步数据。主要用于处理误删除数据马上同步到从节点导致的不一致问题
MyMongo:PRIMARY> rs.add({host:"10.15.7.114:28005","priority":0,"hidden":true,"slaveDelay":60})
Secondary-Only:不能成为primary节点,只能作为secondary副本节点,防止一些性能不高的节点成为主节点。
Non-Voting:没有选举权的secondary节点,纯粹的备份数据节点
2 rs.addArb()
rs.addArb(host) Adds a new arbiter to an existing replica set
WARNING//一般来说,避免在一个副本集中部署多个仲裁节点
In general, avoid deploying more than one arbiter per replica set
3 rs.conf()
//查看副本集配置信息
Returns a document that contains the current replica set configuration.
rs.config()
rs.config() is an alias of rs.conf().
4 rs.freeze()
rs.freeze(seconds)
//是当前副本集在指定时间内不能成为主节点(阻止选举)
Makes the current replica set member ineligible to become primary for the period specified
5 rs.help()
//返回副本集的一些函数
Returns a basic help text for all of the replication related shell functions.
MyMongo:PRIMARY> rs.help()
rs.status() { replSetGetStatus : 1 } checks repl set status
rs.initiate() { replSetInitiate : null } initiates set with default settings
rs.initiate(cfg) { replSetInitiate : cfg } initiates set with configuration cfg
rs.conf() get the current configuration object from local.system.replset
rs.reconfig(cfg) updates the configuration of a running replica set with cfg (disconnects)
rs.add(hostportstr) add a new member to the set with default attributes (disconnects)
rs.add(membercfgobj) add a new member to the set with extra attributes (disconnects)
rs.addArb(hostportstr) add a new member which is arbiterOnly:true (disconnects)
rs.stepDown([stepdownSecs, catchUpSecs]) step down as primary (disconnects)
rs.syncFrom(hostportstr) make a secondary sync from the given member
rs.freeze(secs) make a node ineligible to become primary for the time specified
rs.remove(hostportstr) remove a host from the replica set (disconnects)
rs.slaveOk() allow queries on secondary nodes
rs.printReplicationInfo() check oplog size and time range
rs.printSlaveReplicationInfo() check replica set members and replication lag
db.isMaster() check who is primary
reconfiguration helpers disconnect from the database so the shell will display
an error, even if the command succeeds.
6 rs.initiate()
rs.initiate(configuration) //初始化副本集
Initiates a replica set. Optionally, the method can take an argument in the form of a document that holds the configuration of a replica set.
Eg
rs.initiate(
{
_id: "myReplSet",
version: 1,
members: [
{ _id: 0, host : "mongodb0.example.net:27017" },
{ _id: 1, host : "mongodb1.example.net:27017" },
{ _id: 2, host : "mongodb2.example.net:27017" }
]
}
)
7 rs.printReplicationInfo()
//打印副本集的信息,这里为oplog日志
The following example is a sample output from the rs.printReplicationInfo() method run on the primary:
MyMongo:PRIMARY> rs.printReplicationInfo()
configured oplog size: 1024MB
log length start to end: 14939secs (4.15hrs)
oplog first event time: Thu Oct 11 2018 03:45:19 GMT+0800 (CST)
oplog last event time: Thu Oct 11 2018 07:54:18 GMT+0800 (CST)
now: Thu Oct 11 2018 07:54:23 GMT+0800 (CST)
MyMongo:PRIMARY> db.getReplicationInfo
//在slave上运行,命令为db.printSlaveReplicationInfo()
If run on a slave of a master-slave replication, the method calls db.printSlaveReplicationInfo().
8 rs.printSlaveReplicationInfo()
//返回slave与primary的延时
Returns a formatted report of the status of a replica set from the perspective of the secondary member of the set.
MyMongo:SECONDARY> rs.printSlaveReplicationInfo()
source: 10.15.7.114:28002
syncedTo: Thu Oct 11 2018 08:00:08 GMT+0800 (CST)
0 secs (0 hrs) behind the primary
9 rs.reconfig()
rs.reconfig(configuration, force) //{ force: true }
//重新配置已经存在的副本集,重写副本集配置文件,必须在primary节点上运行
Reconfigures an existing replica set, overwriting the existing replica set configuration. To run the method, you must connect to the primary of the replica set.
//重新配置副本集,必须先rs.conf(),在运行新的副本集配置,然后rs.reconfig()
To reconfigure an existing replica set, first retrieve the current configuration with rs.conf(), modify the configuration
document as needed, and then pass the modified document to rs.reconfig().
WARNING//避免在同一个副本集中,出现不同mongodb的版本
Avoid reconfiguring replica sets that contain members of different MongoDB versions as validation rules may differ across MongoDB versions.
//在执行命令rs.reconfig(),primary库会set down,进行重新选举
{ force: true }
WARNING//在执行rs.reconfig()加上force=ture参数,可导致提交的写操作回滚,要小心使用
Using rs.reconfig() with { force: true } can lead to rollback of committed writes. Exercise caution when using this option
Member Priority and Votes
Changed in version 3.2.
Members with priority greater than 0 cannot have 0 votes.
Non-voting members must have priority of 0.
##修改1为主节点,进行重新选举
cfg = rs.conf();
cfg.members[1].priority = 2;
rs.reconfig(cfg);
10 rs.remove()
rs.remove(hostname) //移除副本集成员
MyMongo:PRIMARY> rs.remove("10.15.7.114:28003");
11 rs.slaveOk()
MyMongo:SECONDARY> db.getMongo().setSlaveOk()
//允许在secondry节点上进行读取操作
This allows the current connection to allow read operations to run on secondary members.
12 rs.status()
//返回副本集的当前状态信息
This output reflects the current status of the replica set, using data derived from the heartbeat packets sent by the other members of the replica set.
13 rs.stepDown()
rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)
//此操作将会把primary节点变为secondry,并落后新成为primary节点%秒
Triggers the primary of the replica set to become a secondary. This in turn triggers an election for primary.
The method steps down the primary for a specified number of seconds; during this period, the stepdown member is ineligible from becoming primary.
主节点降为secondary
MyMongo:PRIMARY> use admin
MyMongo:PRIMARY> rs.stepDown(60)#单位为 秒
secondaryCatchUpPeriodSecs //Optional. The number of seconds that mongod will wait for an electable secondary to catch up to the primary.
14 rs.syncFrom()
//临时指定成员要同步的目标
which allows administrators to temporarily override the default sync target for the current member.
Specify the name of the member you want to replicate from in the form of [hostname]:[port].
rs.syncFrom("myHost:27017");
PRIMARY> rs.status().members[1].MyMongo
Mongodb 副本集的节点详细操作的更多相关文章
- MongoDB副本集--Secondary节点实例恢复
场景描述 MongoDB副本集中有一台Secondary节点出现RECOVERING的状态 状态如下: arps:RECOVERING> rs.status() { "set" ...
- mongodb副本集仲裁节点搭建
服务器准备: 主节点192.168.100.106 从节点192.168.100.107 仲裁节点192.168.100.108 三台服务器: 关闭防火墙 service iptables stop ...
- MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...
- MongoDB 副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
- MongoDB副本集(一主一备+仲裁)环境部署-运维操作记录
MongoDB复制集是一个带有故障转移的主从集群.是从现有的主从模式演变而来,增加了自动故障转移和节点成员自动恢复.MongoDB复制集模式中没有固定的主结点,在启动后,多个服务节点间将自动选举产生一 ...
- MongoDB 副本集的用户和权限一般操作步骤
步骤总结: 在主节点上添加超管用户,副本集会自动同步 按照仲裁者.副本节点.主节点的先后顺序关闭所有节点服务 创建副本集认证的key文件,复制到每个服务所在目录 修改每个服务的配置文件,增加参数 启动 ...
- nodejs+mongoose操作mongodb副本集实例
继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目 express 项目名称 2:npm install mongoose 安装mongo ...
- mongodb副本集(选举,节点设置,读写分离设置)
1.相对于传统主从模式的优势 传统的主从模式,需要手工指定集群中的Master.如果Master发生故障,一般都是人工介入,指定新的Master.这个过程对于应用一般不是透明的,往往伴随着应用重新修改 ...
随机推荐
- Lucene简单介绍
[2016.6.11]以前写的笔记,拿出来放到博客里面~ 相关软件: Solr, IK Analyzer, Luke, Nutch;Tomcat; 1.是什么: Lucene是apache软件基金会j ...
- PAT1022. Digital Library (30)
两个坑. 一个是一直用的malloc不行了.因为malloc分配的是固定大小,之前做的题没遇到过是因为一般string都不长(malloc分配string为24个Byte),这次直接报段错误,呢们了半 ...
- Qt QTreeWidget节点的添加+双击响应+删除详解
转自: http://www.cnblogs.com/Romi/archive/2012/08/08/2628163.html 承接该文http://www.cnblogs.com/Romi/arch ...
- codevs1907 方格取数 3
«问题描述:在一个有m*n 个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法.«编程任务:对于给定的方格棋 ...
- javascript是一种面向对象语言吗?如果是,您在javascript中是如何实现继承的呢
·oop(面向对象程序设计)中最常用到的概念有 1.对象,属性,方法 1>(对象:具体事物或抽象事物,名词) 2>(属性:对象的特征,特点,形容词) 3>(方法:对象的动作,动词) ...
- 什么是 RegExp?
RegExp 是正则表达式的缩写. regular expression 当您检索某个文本时,可以使用一种模式来描述要检索的内容.RegExp 就是这种模式. 简单的模式可以是一个单独的字符. 更复杂 ...
- hibernate报错org.hibernate.SessionException: Session was already closed
org.hibernate.SessionException: Session was already closedat org.hibernate.internal.SessionImpl.clos ...
- review20
Pattern与Matcher类 模式匹配就是检索和指定模式匹配的字符串.java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中. 模式对象 ...
- java中i=i++问题分析
http://www.ticmy.com/?p=43 重点:局部变量表 和 操作数栈的执行过程. 使用javac编译后再使用javap -c Test反编译这个类查看它的字节码,如下(只摘取main方 ...
- s3cmd 安装使用指南
https://wangyan.org/blog/s3cmd-how-to-use.html s3cmd 安装使用指南 s3cmd 是一款 Amazon S3 命令行工具.它不仅能上传.下载.同步,还 ...