一,利用rs.reconfig,来添加,删除节点
1,添加节点
repmore:PRIMARY> config = {_id:”repmore”,members:[{_id:0,host:’127.0.0.1:27017′,priority :2},{_id:1,host:’127.0.0.1:27018′,priority:1}]}; //添加节点
repmore:PRIMARY> rs.reconfig(config); //使配置生效
repmore:PRIMARY> rs.status(); //查看节点状态
节点添加成功。
注意:新增节点的replSet要和其他节点要一样

2,删除节点
repmore:PRIMARY> config = {_id:”repmore”,members:[{_id:0,host:’127.0.0.1:27017′,priority :2}]}; //删除节点
repmore:PRIMARY> rs.reconfig(config); //使配置生效
repmore:PRIMARY> rs.status(); //查看节点状态

二,利用rs.add和rs.remove来添加删除节点
repmore:PRIMARY> rs.add(“127.0.0.1:27018”); //添加节点
repmore:PRIMARY> rs.remove(“127.0.0.1:27018”); //删除节
注意:利用rs.add和rs.remove是不用rs.reconfig来使用配置生效的。

主库执行:
rs.stepDown(5)
会重连并且变为从库

3 对 “mongodb replica 节点操作”的想法;

  1. 集群改ip
    config = {
    “_id” : “replSet0”,
    “version” : 37599,
    “members” : [
    {“_id” : 1,”host” : “10.119.8.27:22017”},
    {“_id” : 2,”host” : “10.119.8.28:22017”},
    {“_id” : 3,”host” : “10.119.8.11:22017″,”arbiterOnly” : true}
    ]
    }

    rs.reconfig(config, {force: true})

  2. 1,冻结当前成员,使当前成员在指定的时间内没有资格成为Primary,即当前成员在一定时间内保持Secondary身份

    Makes the current replica set member ineligible to become primary for the period specified.

    rs.freeze(seconds)
    2,强制 Primary 节点退化为Secondary节点

    rs.stepDown()使当前Primary节点退化为Secondary 节点,并激发选举Primary的事件。该函数使当前的Primary 节点在指定的时间内,不能成为Primary节点。在一定的时间内,如果有 Secondary 节点满足条件,那么该Secondary节点被选举为Primary 节点;如果没有 Secondary 节点满足条件,那么原Primary节点参与选举。stepDown函数,使Primary节点退化为Secondary,并在一段时间内不能参与选举。

    Forces the primary of the replica set to become a secondary, triggering 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.

    rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)
    3,强制当前成员从指定成员同步数据

    rs.syncFrom(“host:port”);
    4,使当前的Secondary 节点能够读取数据

    默认情况下,Secondary 节点是不能读取数据的

    rs.slaveOk()

  3. 模糊查询:就是sql的select * from table where xx like yy的样式的sql语句。
    db.user.find({“name”:/ab/})
    这样,可以查出所有包含有”ab”字符串的数据了。
    等同于select * from user where name like “ab”

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code