*MongoDB副本集测试

主上建库,建集合

>use mydb   #建库

>db.acc.insert({AccountID:1,UserName:"123",password:"123456"}) #插入数据

>show dbs   #查看库

从上查看

>show dbs   

若出现错误Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" },需要执行

>rs.slaveok()



*MongoDB副本集更改权重模拟主宕机

默认三台机器权重都为1,如果任何一个权重设置为比其他的高,则该台机器马上切换为primary角色,所以我们预设三台机器的权重分别为:111:3,112:2,101:1

在主上执行

cfg = rs.conf()  #重新赋值

cfg.members[0].priority = 3

cfg.members[1].priority = 2

cfg.members[2].priority = 1

rs.reconfig(cfg)  #重新加载

这样的话,第二个节点将会成为候选主节点。

主上执行 iptables -I INPUT -p tcp --dport 27017 -j DROP


弊端:mongodb可以自动切换主从,而用户端无法自动切换到新的主上。需要手动来切换。


当原来的主宕机之后,在新的主恢复之前,原主写入的数据也会同步到新的主上。