9404803 发表于 2018-10-26 06:33:24

mongodb主从复制及副本集的部署

  一.mongodb配置参数介绍:
  # cat/etc/mongod.conf
  #以守护进程的方式运行
  fork=true
  #设置db的路径
  dbpath=/usr/local/mongodb/data/db
  #设置日志路径
  logpath=/usr/local/mongodb/data/log/mongod.log
  #logappend:写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。
  logappend=true
  #设置端口号
  port=27017
  #在服务的端口号加上1000的端口上启动一个web服务器
  rest=true
  #打开权限控制体系
  #auth=true
  二.部署mongodb主从复制:
  1.创建master和slave的配置文件:
  # cat /etc/mongod_master.conf
  logpath=/usr/local/mongodb/data/log/mongod_master.log
  logappend=true
  fork=true
  dbpath=/usr/local/mongodb/data/master
  port=10000
  rest=true
  master=true
  #auth=true
  #slaveok=true
  #
  # cat /etc/mongod_slave.conf
  logpath=/usr/local/mongodb/data/log/mongod_slave.log
  logappend=true
  fork=true
  dbpath=/usr/local/mongodb/data/slave
  port=10001
  rest=true
  slave=true
  #auth=true
  source=127.0.0.1:10000
  2.启动主从进程;
  #mkdir -pv /usr/local/mongodb/data/master
  #mkdir -pv /usr/local/mongodb/data/slave
  mongod -f /etc/mongod_master.conf
  mongod -f /etc/mongod_slave.conf
  3.检查主从状态:
  # mongo localhost:10000
  > db.isMaster();
  {
  "ismaster" : true,
  "maxBsonObjectSize" : 16777216,
  "maxMessageSizeBytes" : 48000000,
  "maxWriteBatchSize" : 1000,
  "localTime" : ISODate("2016-02-28T11:46:54.199Z"),
  "maxWireVersion" : 4,
  "minWireVersion" : 0,
  "ok" : 1
  }
  >
  > db.printReplicationInfo();

  configured oplog>  log length start to end: 23821secs (6.62hrs)
  oplog first event time:Sun Feb 28 2016 13:05:17 GMT+0800 (CST)
  oplog last event time:   Sun Feb 28 2016 19:42:18 GMT+0800 (CST)
  now:                     Sun Feb 28 2016 19:42:20 GMT+0800 (CST)
  > db.printSlaveReplicationInfo();
  local.sources is empty; is this db a --slave?
  > db.getReplicationInfo();
  {
  "logSizeMB" : 990,
  "usedMB" : 0.14,
  "timeDiff" : 23871,
  "timeDiffHours" : 6.63,
  "tFirst" : "Sun Feb 28 2016 13:05:17 GMT+0800 (CST)",
  "tLast" : "Sun Feb 28 2016 19:43:08 GMT+0800 (CST)",
  "now" : "Sun Feb 28 2016 19:43:18 GMT+0800 (CST)"
  }
  # mongo localhost:10001
  > db.printReplicationInfo();
  this is a slave, printing slave replication info.
  source: 127.0.0.1:10000
  syncedTo: Sun Feb 28 2016 19:44:18 GMT+0800 (CST)
  4 secs (0 hrs) behind the freshest member (no primary available at the moment)
  三.副本集的部署:
  1.创建各node节点的配置文件:
  # cat /etc/mongod_node1.conf
  logpath=/usr/local/mongodb/data/log/mongod_node1.log
  logappend=true
  fork=true
  dbpath=/usr/local/mongodb/data/node1
  port=20001
  rest=true
  #auth=true
  #slaveok=true
  replSet=myrepl
  # cat /etc/mongod_node2.conf
  logpath=/usr/local/mongodb/data/log/mongod_node2.log
  logappend=true
  fork=true
  dbpath=/usr/local/mongodb/data/node2
  port=20002
  rest=true
  #auth=true
  #slaveok=true
  replSet=myrepl
  # cat /etc/mongod_node3.conf
  logpath=/usr/local/mongodb/data/log/mongod_node3.log
  logappend=true
  fork=true
  dbpath=/usr/local/mongodb/data/node3
  port=20003
  rest=true
  #auth=true
  #slaveok=true
  replSet=myrepl
  #
  2.配置并启动各node服务;
  #mkdir -pv /usr/local/mongodb/data/node1
  #mkdir -pv /usr/local/mongodb/data/node2
  #mkdir -pv /usr/local/mongodb/data/node3
  #mongod -f /etc/mongod_node1.conf
  #mongod -f /etc/mongod_node2.conf
  #mongod -f /etc/mongod_node2.conf
  登录mongod:
  #设置副本集变量:
  > config = { _id:"myrepl", members:[{_id:0,host:"127.0.0.1:20001"},{_id:1,host:"127.0.0.1:20002"},{_id:2,host:"127.0.0.1:20003"}]};
  #初始化副本集配置
  > rs.initiate(config);
  3.检查各node节点状态;
  #查看副本集的状态
  > rs.status();
  #删除节点:
  rs.remove("127.0.0.1:20001");
  rs.status();
  #添加节点:
  rs.add("127.0.0.1:20001");
  rs.status();
  四.至此mongo主从及副本集群部署完成;

页: [1]
查看完整版本: mongodb主从复制及副本集的部署