参考博文: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. pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件
  2. 使用VC++6.0创建MFC对话框程序
  3. (转)创业的注意事项
  4. matlab实战系列之人工鱼群算法求解TSP问题原理解析(下篇源码解析)
  5. 刚柔并济的开源分布式事务解决方案
  6. linux nginx 安装stream,Centos7下Nginx简单搭建与stream模块简单配置
  7. c# GDI+画折线图(初级版本)
  8. 单机装两个mysql_单机环境下安装多个MySQL服务器
  9. div区域内容抓取_企业微信群机器人应用:使用python从网站抓取行业资讯并定时推送...
  10. 计算机等级考试——四级网络工程师考试大纲
  11. python 求矩阵的特征值和特征向量
  12. 苹果MFI认证步骤汇总
  13. calcite learn
  14. 互联网公司刻板印象合集:程序员都秃头,商务个个是人精
  15. Redis高级项目实战,西安java程序员工资
  16. 不朽凡人 第五百二十章 有脾气冲我来
  17. mallat算法分析及c语言实现,图像的Mallat算法分解(Matlab代码)
  18. 比较容易考前计算机好的985大学,容易考的985有哪些?附性价比高的985大学排名...
  19. python软件下载-Python3.8下载
  20. linux下处理视频为flv格式

热门文章

  1. 壁纸引擎java运行库_Microsoft Windows Desktop Runtime v5.0.0 桌面程序运行库(含常规运行库)...
  2. jndi weblogic mysql_Tomcat配置JNDI数据源连接池
  3. Logback日志配置(分级别输出到不同文件)
  4. android cmd 右键菜单不见了,为Windows右键菜单提供打开命令行选项
  5. mysql 并发锁表_MySQL锁表的用法,防止并发情况下的重复数据
  6. 第十六届全国大学生智能车竞赛赛道审核 - 东北赛区第三批赛道审核
  7. 2021年春季学期-信号与系统-第十一次作业参考答案-第五小题
  8. 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
  9. AD633低成本模拟乘法器
  10. 如何在微信中增加附件?