一、方法一rs.setpDown()
将Primary节点降级为Secondary节点
myapp:PRIMARY> rs.stepDown()
这个命令会让primary降级为Secondary节点,并维持60s,如果这段时间内没有新的primary被选举出来,这个节点可以要求重新进行选举。
也可手动指定时间
myapp:PRIMARY> rs.stepDown(30)
在执行完该命令后,原Secondary node3:27017升级为Primary。
二、方法二优先级设置
思路:
1.为了保证数据的一致性,必须先关闭应用的写服务。
2.提升要升级为Primary节点的Secondary节点的优先级。
操作如下:
点击(此处)折叠或打开
- arps:PRIMARY> config=rs.conf() //查看当前配置,存入config变量中。
- arps:PRIMARY> config.members[2].priority = 3 //修改config变量,第三组成员的优先级为3.
- arps:PRIMARY> rs.reconfig(config) //配置生效
- ......
- ......
- 2017-12-22T15:19:56.596+0800 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
- 2017-12-22T15:19:56.597+0800 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok
- arps:SECONDARY> rs.conf() //查看当前配置
- {
- "_id" : "arps",
- "version" : 4,
- "members" : [
- {
- "_id" : 0,
- "host" : "172.17.4.37:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 1,
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- },
- {
- "_id" : 1,
- "host" : "172.17.4.38:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 1,
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- },
- {
- "_id" : 2,
- "host" : "172.17.4.39:27017",
- "arbiterOnly" : false,
- "buildIndexes" : true,
- "hidden" : false,
- "priority" : 3, //优先级变为3
- "tags" : {
- },
- "slaveDelay" : 0,
- "votes" : 1
- }
- ],
- "settings" : {
- "chainingAllowed" : true,
- "heartbeatTimeoutSecs" : 10,
- "getLastErrorModes" : {
- },
- "getLastErrorDefaults" : {
- "w" : 1,
- "wtimeout" : 0
- }
- }
- }
- arps:SECONDARY> rs.status()
- {
- "set" : "arps",
- "date" : ISODate("2017-12-22T07:25:04.641Z"),
- "myState" : 2,
- "syncingTo" : "172.17.4.39:27017",
- "members" : [
- {
- "_id" : 0,
- "name" : "172.17.4.37:27017",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 7597536,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "syncingTo" : "172.17.4.39:27017",
- "configVersion" : 4,
- "self" : true
- },
- {
- "_id" : 1,
- "name" : "172.17.4.38:27017",
- "health" : 1,
- "state" : 2,
- "stateStr" : "SECONDARY",
- "uptime" : 7597426,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "lastHeartbeat" : ISODate("2017-12-22T07:25:02.961Z"),
- "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.091Z"),
- "pingMs" : 0,
- "syncingTo" : "172.17.4.39:27017",
- "configVersion" : 4
- },
- {
- "_id" : 2,
- "name" : "172.17.4.39:27017",
- "health" : 1,
- "state" : 1,
- "stateStr" : "PRIMARY", //最后一个节点升级为PRIMARY
- "uptime" : 3202,
- "optime" : Timestamp(1513927481, 3),
- "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
- "lastHeartbeat" : ISODate("2017-12-22T07:25:02.951Z"),
- "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.344Z"),
- "pingMs" : 0,
- "electionTime" : Timestamp(1513927190, 2),
- "electionDate" : ISODate("2017-12-22T07:19:50Z"),
- "configVersion" : 4
- }
- ],
- "ok" : 1
- }
整理自:
https://www.cnblogs.com/ivictor/p/6804408.html
http://blog.chinaunix.net/uid-26446098-id-5781440.html