MongoDB副本集搭建

一、安装mongodb服务

      1、下载mongodb二进制包,解压,移动到/usr/local/下

tar zxf mongodb-linux-x86_64-rhel70-5.0.15.tgz
mv mongodb-linux-x86_64-rhel70-5.0.15 /usr/local/mongodb

      2、创建数据目录和日志目录

mkdir  /usr/local/mongodb/data
mkdir /usr/local/mongodb/log

       3、创建配置文件

    systemLog:
      destination: file
      logAppend: true
      path: /usr/local/mongodb-master/log/mongod.log
    storage:
      dbPath: /usr/local/mongodb-master/data
      journal:
        enabled: true
    processManagement:
      fork: true
      pidFilePath: /usr/local/mongodb-master/mongod.pid
      #timeZoneInfo: /usr/share/zoneinfo
    net:
      port: 27017
      bindIp: 0.0.0.0
    replication:
      replSetName: "rs0"

        4、创建1主 (master)、1从 (slave)、 1仲裁 (arbiter)、 —— 副本集集群

cp -r /usr/local/mongodb /usr/local/mongodb-master
cp -r /usr/local/mongodb /usr/local/mongodb-slave
mv /usr/local/mongodb /usr/local/mongodb-arbiter

       5、在一台虚拟机上部署需要修改slave和arbiter的配置文件,修改目录路径和启动端口号

 #slave配置

    systemLog:
      destination: file
      logAppend: true
      path: /usr/local/mongodb-slave/log/mongod.log
    storage:
      dbPath: /usr/local/mongodb-slave/data
      journal:
        enabled: true
    processManagement:
      fork: true
      pidFilePath: /usr/local/mongodb-slave/mongod.pid
      #timeZoneInfo: /usr/share/zoneinfo
    net:
      port: 27018
      bindIp: 0.0.0.0
    replication:
      replSetName: "rs0"

#arbiter配置

    systemLog:
      destination: file
      logAppend: true
      path: /usr/local/mongodb-arbiter/log/mongod.log
    storage:
      dbPath: /usr/local/mongodb-arbiter/data
      journal:
        enabled: true
    processManagement:
      fork: true
      pidFilePath: /usr/local/mongodb-arbiter/mongod.pid
      #timeZoneInfo: /usr/share/zoneinfo
    net:
      port: 27019                             #同台虚拟机部署多个mongodb端口号不能相同
      bindIp: 0.0.0.0
    replication:
      replSetName: "rs0"

       6、启动三个mongodb

/usr/local/mongodb-master/bin/mongod -f /usr/local/mongodb-master/mongodb.conf
/usr/local/mongodb-slave/bin/mongod -f /usr/local/mongodb-slave/mongodb.conf
/usr/local/mongodb-arbiter/bin/mongod -f /usr/local/mongodb-arbiter/mongodb.conf

       7、登录任意一个节点mongodb,初始化副本集(主+备+仲裁)。

mongo

> rs.initiate({
... _id: "rs0",
... members: [
... { _id: 0, host: "192.168.100.11:27017" },
... { _id: 1, host: "192.168.100.11:27018" },
... { _id: 2, host: "192.168.100.11:27019", arbiterOnly: true }
... ] })

       8、查看集群信息

> rs.status()
{
  "set" : "rs0",
  "date" : ISODate("2022-11-02T08:16:35.330Z"),
  "myState" : 1,
  "term" : NumberLong(1),
  "syncSourceHost" : "",
  "syncSourceId" : -1,
  "heartbeatIntervalMillis" : NumberLong(2000),
  "majorityVoteCount" : 2,
  "writeMajorityCount" : 2,
  "votingMembersCount" : 3,
  "writableVotingMembersCount" : 2,
  "optimes" : {
    "lastCommittedOpTime" : {
      "ts" : Timestamp(1667376986, 1),
      "t" : NumberLong(1)
    },
    "lastCommittedWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
    "readConcernMajorityOpTime" : {
      "ts" : Timestamp(1667376986, 1),
      "t" : NumberLong(1)
    },
    "readConcernMajorityWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
    "appliedOpTime" : {
      "ts" : Timestamp(1667376986, 1),
      "t" : NumberLong(1)
    },
    "durableOpTime" : {
      "ts" : Timestamp(1667376986, 1),
      "t" : NumberLong(1)
    },
    "lastAppliedWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
    "lastDurableWallTime" : ISODate("2022-11-02T08:16:26.250Z")
  },
  "lastStableRecoveryTimestamp" : Timestamp(1667376936, 1),
  "electionCandidateMetrics" : {
    "lastElectionReason" : "electionTimeout",
    "lastElectionDate" : ISODate("2022-11-02T08:03:35.546Z"),
    "electionTerm" : NumberLong(1),
    "lastCommittedOpTimeAtElection" : {
      "ts" : Timestamp(0, 0),
      "t" : NumberLong(-1)
    },
    "lastSeenOpTimeAtElection" : {
      "ts" : Timestamp(1667376204, 1),
      "t" : NumberLong(-1)
    },
    "numVotesNeeded" : 2,
    "priorityAtElection" : 1,
    "electionTimeoutMillis" : NumberLong(10000),
    "numCatchUpOps" : NumberLong(0),
    "newTermStartDate" : ISODate("2022-11-02T08:03:35.557Z"),
    "wMajorityWriteAvailabilityDate" : ISODate("2022-11-02T08:03:36.683Z")
  },
  "members" : [
    {
      "_id" : 0,
      "name" : "192.168.1.11:27017",
      "health" : 1,
      "state" : 1,
      "stateStr" : "PRIMARY",
      "uptime" : 2058,
      "optime" : {
        "ts" : Timestamp(1667376986, 1),
        "t" : NumberLong(1)
      },
      "optimeDate" : ISODate("2022-11-02T08:16:26Z"),
      "lastAppliedWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
      "lastDurableWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
      "syncSourceHost" : "",
      "syncSourceId" : -1,
      "infoMessage" : "",
      "electionTime" : Timestamp(1667376215, 1),
      "electionDate" : ISODate("2022-11-02T08:03:35Z"),
      "configVersion" : 1,
      "configTerm" : 1,
      "self" : true,
      "lastHeartbeatMessage" : ""
    },
    {
      "_id" : 1,
      "name" : "192.168.1.12:27017",
      "health" : 1,
      "state" : 2,
      "stateStr" : "SECONDARY",
      "uptime" : 790,
      "optime" : {
        "ts" : Timestamp(1667376986, 1),
        "t" : NumberLong(1)
      },
      "optimeDurable" : {
        "ts" : Timestamp(1667376986, 1),
        "t" : NumberLong(1)
      },
      "optimeDate" : ISODate("2022-11-02T08:16:26Z"),
      "optimeDurableDate" : ISODate("2022-11-02T08:16:26Z"),
      "lastAppliedWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
      "lastDurableWallTime" : ISODate("2022-11-02T08:16:26.250Z"),
      "lastHeartbeat" : ISODate("2022-11-02T08:16:34.218Z"),
      "lastHeartbeatRecv" : ISODate("2022-11-02T08:16:34.154Z"),
      "pingMs" : NumberLong(0),
      "lastHeartbeatMessage" : "",
      "syncSourceHost" : "192.168.1.11:27017",
      "syncSourceId" : 0,
      "infoMessage" : "",
      "configVersion" : 1,
      "configTerm" : 1
    },
    {
      "_id" : 2,
      "name" : "192.168.1.13:27017",
      "health" : 1,
      "state" : 0,
      "stateStr" : "STARTUP",
      "uptime" : 790,
      "lastHeartbeat" : ISODate("2022-11-02T08:16:34.126Z"),
      "lastHeartbeatRecv" : ISODate("1970-01-01T00:00:00Z"),
      "pingMs" : NumberLong(3),
      "lastHeartbeatMessage" : "",
      "syncSourceHost" : "",
      "syncSourceId" : -1,
      "infoMessage" : "",
      "configVersion" : -2,
      "configTerm" : -1
    }
  ],
  "ok" : 1,
  "$clusterTime" : {
    "clusterTime" : Timestamp(1667376986, 1),
    "signature" : {
      "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
      "keyId" : NumberLong(0)
    }
  },
  "operationTime" : Timestamp(1667376986, 1)
}

结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值