mongodb replica 节点操作
一,利用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)
会重连并且变为从库
集群改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})
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()
模糊查询:就是sql的select * from table where xx like yy的样式的sql语句。
db.user.find({“name”:/ab/})
这样,可以查出所有包含有”ab”字符串的数据了。
等同于select * from user where name like “ab”