MongDB副本集

  

官方网站:https://docs.mongodb.com/v3.4/reference/replication/
中文网站:http://www.mongodb.org.cn/manual/method-replication/
权限表参考:https://blog.csdn.net/kk185800961/article/details/45619863
副本集搭建参考:https://www.cnblogs.com/ranjiewen/p/5928994.html

  

测试环境搭建mongo监控
监控mongodb使用的用户,在不指定数据库名称的情况下,一般是管理库,所以监控用户要在管理下创建,同时授权的权限为clusterMonitor,执行serverStatus

  
 <代码>使用管理
  db.createUser({用户:“monitor_mongo pwd:“monitor_mongo@123”角色:[{角色:“clusterMonitor db:“admin”}]})  
  

查看所有用户:

  
 <代码>使用管理;
  db.system.users.find()  
  

删除用户:

  
 <代码> db.dropUser(" ")  
  

删除数据库:

  
 <代码>比;使用monitor_mongo;
  切换到db monitor_mongo
  比;显示用户;
  比;db.dropDatabase ()
  {“下降”:“monitor_mongo”,“ok”: 1}  
  

搭建副本集

  

===auth启动服务
保证所有节点使用相同的秘钥

  
 <代码> echo "这是rs1超级秘密密钥”比;/opt/mongodb/密钥文件
  chmod 600/opt/mongodb/密钥文件 
  

使用配置文件auth启动服务时,先进行集群初始化后,在设置密码

  
 <代码>配置={_id:“rs0”,成员:[{_id: 0,主持人:“192.168.1.221:23183”}]}
  rs.initiate(配置)
  db.createUser({用户:“根”,pwd:“ops2017 ! 2 #”,角色:[{角色:“根”,db:“admin”}]})
  rs.add(20.10.1.31:27018)  
  

如果第一次配置写错了,那么可以使用相应命令修改

  
 <代码>配置={_id:“rs0”,成员:[{_id: 0,主持人:“192.168.1.221:11111”}]}
  rs.reconfig(配置) 
  

查看集群状态:

  
 <代码> rs.status()  
  

查看配置情况:

  
 <代码> db._adminCommand ({getCmdLineOpts: 1})  
  

==========集群测试:<强>节点数量必须在=3,在主库故障时才可以选举剩余节点为主,宕机节点数超过总数一半,也无法选举新的主。
主:

  
 <代码> rs0: PRIMARY>使用测试
  改数据库测试
  rs0: PRIMARY>db.test.insert ({1:1})
  WriteResult ({“nInserted”: 1})
  rs0: PRIMARY>db.test.find ()
  {" _id ": ObjectId (“5 c80bfa19d287f61d98d24b5”),“1”: 1}  
  

二级:默认客户端不可以从二次成员获取数据,必须执行slaveOk后才可以读取数据。

  
 <代码> rs0: SECONDARY>rs.slaveOk ()
  rs0: SECONDARY>db.test.find ()
  {" _id ": ObjectId (“5 c80bfa19d287f61d98d24b5”),“1”: 1}  
  

==集群重要参数说明:

  
 <代码> rs.conf ()
  {
  :“_id rs0”,
  “版本”:4
  “protocolVersion”: NumberLong (1),
  “成员”:(
  {
  “_id”: 0,
  “主机”:“192.168.1.221:23183”,
  “arbiterOnly”:假的,
  “buildIndexes”:没错,
  “隐藏”:假的,
  “优先级”:1、
  "标签":{
  
  },
  “slaveDelay”: NumberLong (0)
  “投票”:1
  }, 
  

其中:
arbiterOnly: 0或1,标识一个仲裁(裁判),仲裁者的唯一作用是参与主要的选举,仲裁者不保存数据,不会为客户提供服务,它存在的意义就是为了选举初选。
隐藏:0或1,表示该成员是不是隐藏成员,隐藏的成员的主要作用是备份数据,可以使用性能较差的服务器作为隐藏成员.Hidden成员不会接收客户的请求,也不会成为初选。在设置隐藏成员时,必须设置成员[n]。首要属性为0。
优先:数值类型,用于设置成员成为主要的优先级.priority越高的成员,越有机会成为初选。如果优先级=0,那么该成员永远不会成为初选。
投票:1或0,表示该成员的投票的数量,在每组个副本中,最多有7个成员,其选票属性值是1.票属性是1的成员(投票成员)拥有选举主的权利。一个成员要想成为一个小学,那么必须获得投票成员的大多成员的支持。
在副本中,如果投票成员的数量是5,那么一个成员成为主要的条件是:获得超过2个投票成员的支持,并且没有任何投票成员反对,只要有任意一个反投票成员对该成员成为主要,那么该成员就不能成为初选。

MongDB副本集