查看复制集状态
rs.status(); //查看整体复制集状态 rs.isMaster(); // 查看当前是否是主节点 rs.conf(); //查看复制集配置信息
添加删除节点
rs.remove("ip:port"); // 删除一个节点 rs.add("ip:port"); // 新增从节点 rs.addArb("ip:port"); // 新增仲裁节点 rs.remove("10.0.0.200:28019"); rs.add("10.0.0.200:28020"); rs.addArb("10.0.0.200:28019"); [mongod@db01 ~]$ mongod -f /mongodb/28019/conf/mongod.conf 节点删除之后再用此节点添加,需要重启mongod.conf
特殊从节点
arbiter节点:主要负责选主过程中的投票,但是不存储任何数据,也不提供任何服务 hidden节点:隐藏节点,不参与选主,也不对外提供服务。 delay节点:延时节点,数据落后于主库一段时间,因为数据是延时的,也不应该提供服务或参与选主,所以通常会配合hidden(隐藏) 一般情况下会将delay+hidden一起配置使用
配置延时节点
一般延时节点也配置成hidden cfg=rs.conf() cfg.members[3].priority=0 cfg.members[3].hidden=true cfg.members[3].slaveDelay=120 rs.reconfig(cfg) 中括号里面的数字表示为rs.conf()从上往下数的序列号 ------------------------------------ 取消以上配置 cfg=rs.conf() cfg.members[3].priority=1 cfg.members[3].hidden=false cfg.members[3].slaveDelay=0 rs.reconfig(cfg) 配置成功后,通过以下命令查询配置后的属性 rs.conf(); ------------------------------------ 主库宕机,28018从库变为主库 [mongod@db01 ~]$ mongod -f /mongodb/28017/conf/mongod.conf --shutdown [mongod@db01 ~]$ mongo --port 28018 admin my_repl:PRIMARY> 主库启动,自动变为从库 [mongod@db01 ~]$ mongod -f /mongodb/28017/conf/mongod.conf [mongod@db01 ~]$ mongo --port 28018 admin my_repl:PRIMARY> rs.status()
副本集其他操作命令
副本节点默认不可读写,设置副本节点可读:在副本节点执行 my_repl:SECONDARY> rs.slaveOk()
查看副本节点(监控主从延时)
my_repl:SECONDARY> rs.printSlaveReplicationInfo() source: 10.0.0.200:28017 syncedTo: Thu Oct 29 2020 14:04:58 GMT+0800 (CST) 0 secs (0 hrs) behind the primary source: 10.0.0.200:28020 syncedTo: Thu Oct 29 2020 14:02:58 GMT+0800 (CST) 120 secs (0.03 hrs) behind the primary