MongoDB 副本集切换方法

MongoDB 副本集切换方法

1、rs.stepDown([stepdownSecs, catchUpSecs])   step down as primary (disconnects)

   操作步骤如下:

   [root@127-0-0-1 conf]# mongo –port 2777

    shard1:PRIMARY> show dbs

    admin   0.000GB

    config  0.000GB

    local   0.001GB

    yoon    0.000GB

    shard1: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.

    shard1:PRIMARY> rs.stepDown()   #这个命令会让primary降级为Secondary节点

    shard1:PRIMARY> rs.stepDown(30) #这个命令会让primary降级为Secondary节点并维持30S,如果这段时间没有新的primary选举出来,这个节点重新加入进行选举

2、通过设置优先级

   A.为了保证数据的一致性,必须先关闭应用的写服务

   B.提升要升级为primary节点的Secondary节点的优先级

   操作如下:

   查看当前配置信息:

   shard1:PRIMARY> rs.conf()

{

“_id” : “shard1”,

“version” : 4,

“protocolVersion” : NumberLong(1),

“writeConcernMajorityJournalDefault” : true,

“members” : [

{

“_id” : 0,

“host” : “127.0.0.1:2777”,

“arbiterOnly” : false,

“buildIndexes” : true,

“hidden” : false,

“priority” : 3,

“tags” : {

},

“slaveDelay” : NumberLong(0),

“votes” : 1

},

{

“_id” : 1,

“host” : “127.0.0.1:3777”,

“arbiterOnly” : false,

“buildIndexes” : true,

“hidden” : false,

“priority” : 1,

“tags” : {

},

“slaveDelay” : NumberLong(0),

“votes” : 1

},

{

“_id” : 2,

“host” : “127.0.0.1:4777”,

“arbiterOnly” : false,

“buildIndexes” : true,

“hidden” : false,

“priority” : 1,

“tags” : {

},

“slaveDelay” : NumberLong(0),

“votes” : 1

}

],

“settings” : {

“chainingAllowed” : true,

“heartbeatIntervalMillis” : 2000,

“heartbeatTimeoutSecs” : 10,

“electionTimeoutMillis” : 10000,

“catchUpTimeoutMillis” : -1,

“catchUpTakeoverDelayMillis” : 30000,

“getLastErrorModes” : {

},

“getLastErrorDefaults” : {

“w” : 1,

“wtimeout” : 0

},

“replicaSetId” : ObjectId(“5f27de76c8d22581cdeb2f2e”)

}

}

     

     shard1:PRIMARY> config=rs.conf()    # 查看当前配置,存入config变量中

     shard1:PRIMARY> config.members[2].priority = 3   # 修改config变量,将第三组端口为4777的成员优先级设置为3

     shard1:PRIMARY> rs.reconfig(config)   #
配置生效

     shard1:PRIMARY> db.isMaster()

{

“hosts” : [

“127.0.0.1:2777”,

“127.0.0.1:3777”,

“127.0.0.1:4777”

],

“setName” : “shard1”,

“setVersion” : 7,

“ismaster” : true,

“secondary” : false,

“primary” : “127.0.0.1:4777”,    

“me” : “127.0.0.1:4777”,

“electionId” : ObjectId(“7fffffff0000000000000004”),

“lastWrite” : {

“opTime” : {

“ts” : Timestamp(1596599298, 1),

“t” : NumberLong(4)

},

“lastWriteDate” : ISODate(“2020-08-05T03:48:18Z”),

“majorityOpTime” : {

“ts” : Timestamp(1596599298, 1),

“t” : NumberLong(4)

},

“majorityWriteDate” : ISODate(“2020-08-05T03:48:18Z”)

}..

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28939273/viewspace-2709355/,如需转载,请注明出处,否则将追究法律责任。

本文由 @耿俊秋[Vip] 发布于 职涯宝 ,未经作者许可,禁止转载,欢迎您分享文章

发表评论

登录后才能评论
小程序
小程序
微信客服
微信客服
QQ客服 建站服务
分享本页
返回顶部