参考博文:https://www.jianshu.com/p/ca620842868a

一、安装准备
1、修改系统配置
#关闭selinux、firewall
#修改/etc/security/limits.conf添加以下内容:

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 65536
  • hard nproc 65536
    #修改/etc/security/limits.d/20-nproc.conf
  • soft nproc 65536
    3、创建账户、目录
    groupadd -g 600 mongo
    useradd -u 600 -g mongo mongo

二、安装步骤
1、解压文件
tar xvf mongodb-linux-x86_64-enterprise-rhel70-3.6.2.tgz -C /usr/local/
cd /usr/local
mv mongodb-linux-x86_64-enterprise-rhel70-3.6.2/ mongodb
cd mongodb
mkdir -p data/db
mkdir log
touch log/mongod.log
mkdir etc
touch etc/mongod.conf
chown -R mongo.mongo /usr/local/mongodb
2、分别在每台机器上配置config文件
vim etc/mongod.conf
dbpath = /usr/local/mongodb/data/db # 指定数据库路径
logpath = /usr/local/mongodb/log/mongod.log # 指定mongodb日志文件
logappend = true # 使用追加的方式写日志
port = 27017 #设置端口号为27017
bind_ip = 192.168.1.221
fork = true #设置以守护进程的方式启动mongod
replSet = bsbgpsrs #设置副本集的名字为myrs,同一副本集群的replSet名称
3、分别在每台机器上启动副本集
su - mongo
#修改环境变量
PATH=$PATH:$HOME/bin:/usr/local/mongodb/bin
export PATH
#启动
yum install -y net-snmp* gcc-c++
nohup mongod -f /usr/local/mongodb/etc/mongod.conf >/dev/null 2>&1 &
4、初始化副本集
登录任意一台机器的mongodb后台管理shell:
cd /usr/local/mongodb
./bin/mongo
use admin
config = {
"_id":"bsbgpsrs",
"members":[
{"_id":0,"host":"192.168.198.224:27017"},
{"_id":1,"host":"192.168.198.225:27017"},
{"_id":2,"host":"192.168.198.226:27017",arbiterOnly:true}
]
}
rs.initiate(config); #初始化配置
5、查看副本集状态
rs.status();
6 、添加验证
use admin
db.createUser({user:"admin",pwd:"Mongo/2018",roles:["root"]})
db.auth("admin","Mongo/2018")

三、测试副本集
1、测试副本集的数据复制功能
此时在我的机器上192.168.198.224是主节点,我们用mongo来登录shell。

cd /usr/local/mongodb
./bin/mongo
use test #创建test数据库
db.testdb.insert({"name":"yaya"}); #插入数据
我们用副本节点登录shell,我这里是192.168.198.225:

cd /usr/local/mongodb
./bin/mongo
use test
show tables
此时会报错:

[thread1] Error: listCollections failed: {
"ok" : 0,
"errmsg" : "not master and slaveOk=false",
"code" : 13435,
"codeName" : "NotMasterNoSlaveOk"
}
因为mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。

myrs:SECONDARY> db.getMongo().setSlaveOk();
此时就可以读取数据了:

repset:SECONDARY> db.testdb.find();
控制台输出:{ "_id" : ObjectId("59676d711881041abab44477"), "name" : "yaya" }
所以,数据复制的功能是可用的。

2、测试副本集的故障转移功能
将主节点192.168.198.224的mongod进程杀死:

myrs:PRIMARY> use admin
myrs:PRIMARY> db.shutdownServer()
此时可以看到,192.168.198.225原本是副节点,此时自动转换为主节点。可以通过rs.status()来查看。

四、其他设置
1、取消透明大页在/etc/rc.d/rc.local增加下列内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
chmod +x /etc/rc.d/rc.local
2、Mongodb C drive安装
tar xvf mongo-c-driver-1.6.1.tar.gz
cd mongo-c-driver-1.6.1/
./configure -disable-automatic-init-and-cleanup
make
make install

转载于:https://blog.51cto.com/linux10000/2061153

MongoDB副本集的搭建相关推荐

  1. mongodb副本集架构搭建

    高可用性通常描述一个系统经过专门的设计,从而减少停工时间.保存其服务的高度连续可用性,MongoDB提供的主从复制机制保证了多个数据库的数据同步,这对实现数据库的容灾.备份.恢复.负载均衡都是有极大的 ...

  2. MongoDB副本集搭建及在springboot中使用

    MongoDB副本集搭建及在springboot中使用 一.mongoDB副本集的搭建 原则就是一台master(主),一台salve(从),一台arbiter(仲裁) 1.下载mongoDB htt ...

  3. Mongodb 副本集+分片集群搭建

    环境需求: 在三台机器上搭建副本集,在副本集上做分片 服务器IP: 192.168.1.232/192.168.1.238/192.168.1.241 安装Mongodb all nodes: tar ...

  4. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

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

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

  6. MongoDb副本集详解及搭建

    mongodb副本集 Mongodb副本集 一. 副本集成员 (1) 主节点(Primary) (2) 次节点(Secondary) (3) 仲裁节点(Arbiter) 二. 副本Oplog (1) ...

  7. MongoDB副本集搭建(超级详细)

    MongoDB 副本集原理 什么是复制 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性 复制还允许从硬件故障和服务中断中恢复数据 为什么要复制 数据 ...

  8. MongoDB副本集搭建、连接php

    文章目录 PHP连接MongoDB MongoDB副本集介绍 MongoDB副本集搭建 MongoDB副本集测试 PHP连接MongoDB php连接MongoDB需要安装拓展包有两种,分别是mong ...

  9. MongoDB副本集详解与搭建

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

最新文章

  1. 连接到多台mysql_Oracle通过dblink连接到多台MySQL
  2. C和C++线性表的链式存储
  3. [安卓] 9、线程、VIEW、消息实现从TCP服务器获取数据动态加载显示
  4. cat 几行_迷风花说Cat!Cat因为林教练是好教练回去现实却给了一巴掌
  5. linux安装svn(yum安装)
  6. Redis 和 memcached 区别
  7. 安装matpower
  8. php mysql 嵌套查询_MYSQL数据库MySQL嵌套查询实例详解
  9. 帝国cms后台界面修改方法 最新版教程
  10. 用PS制作墙壁上的时尚立体文字图案
  11. 爬取游戏优惠信息,并且将结果发送到邮箱
  12. 理解性能的奥秘——应用程序中慢,SSMS中快(4)——收集解决参数嗅探问题的信息
  13. P2698 [USACO12MAR]Flowerpot S 题解
  14. 拥有百万粉丝的大牛讲述学Android的历程,附赠课程+题库
  15. JAVA学习从软件工程导论课自动出题软件编程项目开始
  16. SAP ABAP MIGO 262
  17. 多视角学习 (Multi-View Learning)
  18. 中国电信吴湘东:云网一体化将为运营商带来新的融合和创新
  19. (vue+【饿了么UI】tag组件封装)
  20. 解决:android 开发 WIFI 功能 密码输入正确时监听的问题

热门文章

  1. concat mysql sql注入_sql注入-mysql注入基础及常用注入语句
  2. linux内核用什么调试,什么是开发/调试Linux内核最有效和最优雅的方式
  3. 昌吉学院计算机工程系毕业后安排工作嘛,0昌吉学院.doc
  4. hexde php_怎样在PHP中把16进制HEX数据转换为2进制数据呢?
  5. 函数计算的是什么_【Excel函数教程】3个例子让你彻底玩转EDATE函数
  6. java textlistener_Java TextView.setOnEditorActionListener方法代码示例
  7. java newline_Java BufferedWriter.newLine()方法示例
  8. 关于“航天•轻舟机器人国赛技术交流会”邀请函
  9. 2021春季学期-创新设计与实践-Lesson2
  10. 是否患有新冠肺炎? 你咳嗽一声