实验环境:准备三台服务器部署MongoDB副本集

1.MongoDB下载安装(三台服务器操作相同)

cd /data/mongodbwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.18.tgz
tar xf mongodb-linux-x86_64-rhel70-4.4.18.tgzmv mongodb-linux-x86_64-rhel70-4.4.18 mongodb_install
##配置MongoDB环境变量
echo 'export PATH=/data/mongodb/mongodb_install/bin:$PATH' >> /etc/profile
source /etc/profile

2.创建配置文件(三台服务器操作相同)

mkdir /data/mongodb/{conf,data,log,keyfile} -pvim /data/mongodb/conf/mongod.conf
systemLog:destination: filelogAppend: truepath: /data/mongodb/log/mongod.log
storage:dbPath: /data/mongodb/datajournal:enabled: true
processManagement:fork: truepidFilePath: /data/mongodb/log/mongod.pidtimeZoneInfo: /usr/share/zoneinfo
net:port: 27017bindIp: 0.0.0.0
#security:
#  authorization: enabled
#  keyFile: /data/mongodb/keyfile/keyfile
replication:
##配置文件在三台服务器上此项可分别为,rs01,rs02,rs03replSetName: "rs01"

3.添加MongoDB用户,启动MongoDB服务

useradd mongodb -s /sbin/nologin
chown mongodb:mongodb /data/mongodb/ -R
su - mongodb -s /bin/bash
mongod -f /data/mongodb/conf/mongod.conf
exit

4.创建副本集

> conf={_id:'rs01',members:[
... {_id:0,host:'10.0.1.223:27017'},
... {_id:1,host:'10.0.1.224:27017'},
... {_id:2,host:'10.0.2.79:27017'}]
... }
{"_id" : "rs01","members" : [{"_id" : 0,"host" : "10.0.1.223:27017"},{"_id" : 1,"host" : "10.0.1.224:27017"},{"_id" : 2,"host" : "10.0.2.79:27017"}]
}
> rs.initiate(conf);
{ "ok" : 1 }

查看集群状态

rs01:PRIMARY> rs.status()
{"set" : "rs01","date" : ISODate("2022-09-22T02:36:07.484Z"),"myState" : 1,"term" : NumberLong(1),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"heartbeatIntervalMillis" : NumberLong(2000),"majorityVoteCount" : 2,"writeMajorityCount" : 2,"optimes" : {"lastCommittedOpTime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"lastCommittedWallTime" : ISODate("2022-09-22T02:36:04.376Z"),"readConcernMajorityOpTime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"readConcernMajorityWallTime" : ISODate("2022-09-22T02:36:04.376Z"),"appliedOpTime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"durableOpTime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"lastAppliedWallTime" : ISODate("2022-09-22T02:36:04.376Z"),"lastDurableWallTime" : ISODate("2022-09-22T02:36:04.376Z")},"lastStableRecoveryTimestamp" : Timestamp(1663814134, 1),"lastStableCheckpointTimestamp" : Timestamp(1663814134, 1),"electionCandidateMetrics" : {"lastElectionReason" : "electionTimeout","lastElectionDate" : ISODate("2022-09-22T02:32:34.301Z"),"electionTerm" : NumberLong(1),"lastCommittedOpTimeAtElection" : {"ts" : Timestamp(0, 0),"t" : NumberLong(-1)},"lastSeenOpTimeAtElection" : {"ts" : Timestamp(1663813944, 1),"t" : NumberLong(-1)},"numVotesNeeded" : 2,"priorityAtElection" : 1,"electionTimeoutMillis" : NumberLong(10000),"numCatchUpOps" : NumberLong(0),"newTermStartDate" : ISODate("2022-09-22T02:32:34.334Z"),"wMajorityWriteAvailabilityDate" : ISODate("2022-09-22T02:32:34.913Z")},"members" : [{"_id" : 0,"name" : "192.168.8.5:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 252,"optime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2022-09-22T02:36:04Z"),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","electionTime" : Timestamp(1663813954, 1),"electionDate" : ISODate("2022-09-22T02:32:34Z"),"configVersion" : 1,"self" : true,"lastHeartbeatMessage" : ""},{"_id" : 1,"name" : "192.168.8.6:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 223,"optime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"optimeDurable" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2022-09-22T02:36:04Z"),"optimeDurableDate" : ISODate("2022-09-22T02:36:04Z"),"lastHeartbeat" : ISODate("2022-09-22T02:36:06.468Z"),"lastHeartbeatRecv" : ISODate("2022-09-22T02:36:07.087Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncingTo" : "192.168.8.5:27017","syncSourceHost" : "192.168.8.5:27017","syncSourceId" : 0,"infoMessage" : "","configVersion" : 1},{"_id" : 2,"name" : "192.168.8.7:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 223,"optime" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"optimeDurable" : {"ts" : Timestamp(1663814164, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2022-09-22T02:36:04Z"),"optimeDurableDate" : ISODate("2022-09-22T02:36:04Z"),"lastHeartbeat" : ISODate("2022-09-22T02:36:06.475Z"),"lastHeartbeatRecv" : ISODate("2022-09-22T02:36:07.088Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncingTo" : "192.168.8.5:27017","syncSourceHost" : "192.168.8.5:27017","syncSourceId" : 0,"infoMessage" : "","configVersion" : 1}],"ok" : 1,"$clusterTime" : {"clusterTime" : Timestamp(1663814164, 1),"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId" : NumberLong(0)}},"operationTime" : Timestamp(1663814164, 1)
}

4.开启用户认证

rs01:PRIMARY> use admin
rs01:PRIMARY>
db.createUser({user:"root",pwd:"********",roles:[{role:"root",db:"admin"}]})Successfully added user: {"user" : "root","roles" : [{"role" : "root","db" : "admin"}]
}

5.停止mongodb集群,首先停止从节点,最后停止主节点

mongod -f /data/mongodb/conf/mongod.conf --shutdown

6.创建keyfile文件

openssl rand -base64 756 > /data/mongodb/keyfile/keyfile
chmod 600 /data/mongodb/keyfile/keyfile
chown mongodb:mongodb /data/mongodb/keyfile/keyfile
scp keyfile 10.0.1.224:/data/mongodb/keyfile/
scp keyfile 10.0.2.79:/data/mongodb/keyfile/

7.修改mongodb配置文件,三台机器都修改

vim /data/mongodb/conf/mongod.conf
systemLog:destination: filelogAppend: truepath: /data/mongodb/log/mongod.log
storage:dbPath: /data/mongodb/datajournal:enabled: true
processManagement:fork: truepidFilePath: /data/mongodb/log/mongod.pidtimeZoneInfo: /usr/share/zoneinfo
net:port: 27017bindIp: 0.0.0.0
security:authorization: enabledkeyFile: /data/mongodb/keyfile/keyfile
replication:replSetName: "rs01"

8.启动集群,先启动主节点,再启动从节点

su - mongodb -s /bin/bash
mongod -f /data/mongodb/conf/mongod.conf
exit

9.登录验证

mongo
rs01:PRIMARY> use admin
switched to db admin
rs01:PRIMARY> db.auth("root","******")
1
rs01:PRIMARY> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
rs01:PRIMARY> 

MongoDB副本集部署相关推荐

  1. Mongodb副本集部署(Centos7)

    服务器准备 准备三台服务器,以副本集集群方式部署Mongodb,假设服务器如下: 服务器 节点类型 IP地址 端口 Node1 Mongodb服务1(优先级最高,默认为主节点Master) 10.10 ...

  2. MongoDB副本集的部署与操作

    一.实验综述 1.实验目的及要求 (1)了解MongoDB副本集 (2)熟悉MongoDB副本集成员 (3)掌握MongoDB副本集部署 (4)掌握MongoDB副本集操作 (5)理解副本集机制 实验 ...

  3. mongodb副本集+分片集群部署 step by step

    mongodb副本集+分片集群部署step by step 本文只讲述mongodb副本集+分片集群的部署,关于mongdb shading & replica set原理优点等不在本文讨论范 ...

  4. DockerCompose MongoDB 副本集(集群) (客户端验证密码 - 集群内部使用mongodbKeyfile验证 ) 部署

    本部署MongoDB副本集是没有用其他的配置什么的(例如: mongodb-compass).是最简单的一个 我是为了mongodb的事务才配置的这个副本集,要使用mongodb的事务必须要副本集. ...

  5. 小丸子学MongoDB系列之——部署MongoDB副本集

    1.以副本集的方式启动mongodb实例 1.1 创建副本集目录 [mgousr01@vm1 ~]$ mkdir -p mongorep/{mg17/{bin,conf,data,logs,pid}, ...

  6. (2)MongoDB副本集自动故障转移原理(含客户端)

    前文我们搭建MongoDB三成员副本集,了解集群基本特性,今天我们围绕下图聊一聊背后的细节. 默认搭建的副本集均在主节点读写,辅助节点冗余部署,形成高可用和备份,具备自动故障转移能力. 集群心跳保活 ...

  7. MongoDB 副本集的相关概念【转】

    一.副本集基本概念 副本集(replica set) MongoDB的replica set是一个mongod进程实例簇,数据在这个簇中相互复制,并自动进行故障切换. MongoDB的数据库复制增加了 ...

  8. MongoDB副本集(Replica Sets)搭建教程

    MongoDB副本集(Replica Sets)搭建教程 最近在生产环境下部署公司项目.由于项目中有使用到MongoDB,所以参考网上的博客,在服务器上进行搭建MongoDB副本集.今天打算将其记录成 ...

  9. MongoDB副本集详解与搭建

    1. 简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务. 副本集可提供冗余和高可用性,是所有生产部署的基础.也可以说,副本集类似于有自动故障恢复功能的主从 ...

最新文章

  1. 一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案
  2. nginx 配置并发数限制
  3. 2020 操作系统第一天复习(习题总结)
  4. ASP.NET MVC 动态选择VIEW
  5. android 判断字符相等,字符串的截取,判断字符串是否相等和字符串是否为空的方法总结Java,Android...
  6. 《Lucene in Action》 MoreLikeThis 实例
  7. RHEL7和RHEL6的主要变化
  8. c#简要概括面向对象的三大特征(三)
  9. 30 | 答疑文章(二):用动态的观点看加锁
  10. 汉字编码及区位码查询算法
  11. 深度好文 | 超全SLAM技术及应用介绍
  12. 【Python爬虫】获取全国客运列车车次及起讫站点位置信息
  13. 前端真题面试必备面试题及答案
  14. html叫编程语言吗,html是编程语言吗
  15. mysql hugepage_Linux配置HugePage
  16. 【转载】《周一清晨的领导课》读书笔记!!!
  17. 阿里云——杭州云栖大会
  18. Web GIS开发教程
  19. 从 PC 卸载 Office
  20. 黑马程序员新版Linux零基础快速入门到精通——学习笔记

热门文章

  1. GAN用于(无缺陷样本)产品表面缺陷检测
  2. 李嘉诚收购英国电信公司遭英国官方要求封杀
  3. 十大跨平台移动应用开发工具
  4. 三款ANI光标漏洞蠕虫病毒专杀工具及两个补丁
  5. 利用python 爬取豆瓣即将上映的电影
  6. 前端时间转换 2019-08-18T16:00:00.000Z 转换成格式2019-08-18
  7. IBM推出用于量子计算的CLOPS性能标准;量子基本定理突破绝对零度的适用温度 | 全球量子科技与工业快讯第四十三期
  8. Naver 向沙特 NEOM 项目推销充满机器人的智能办公室
  9. HIST:微软最新发布的基于图的可以挖掘面向概念分类的共享信息的股票趋势预测框架...
  10. 禾赛获上汽飞凡前装量产定点,飞凡全新车型将搭载AT128