MongoDB副本集的搭建
参考博文: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副本集的搭建相关推荐
- mongodb副本集架构搭建
高可用性通常描述一个系统经过专门的设计,从而减少停工时间.保存其服务的高度连续可用性,MongoDB提供的主从复制机制保证了多个数据库的数据同步,这对实现数据库的容灾.备份.恢复.负载均衡都是有极大的 ...
- MongoDB副本集搭建及在springboot中使用
MongoDB副本集搭建及在springboot中使用 一.mongoDB副本集的搭建 原则就是一台master(主),一台salve(从),一台arbiter(仲裁) 1.下载mongoDB htt ...
- Mongodb 副本集+分片集群搭建
环境需求: 在三台机器上搭建副本集,在副本集上做分片 服务器IP: 192.168.1.232/192.168.1.238/192.168.1.241 安装Mongodb all nodes: tar ...
- MongoDB副本集学习(一):概述和环境搭建
MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...
- MongoDB副本集(Replica Sets)搭建教程
MongoDB副本集(Replica Sets)搭建教程 最近在生产环境下部署公司项目.由于项目中有使用到MongoDB,所以参考网上的博客,在服务器上进行搭建MongoDB副本集.今天打算将其记录成 ...
- MongoDb副本集详解及搭建
mongodb副本集 Mongodb副本集 一. 副本集成员 (1) 主节点(Primary) (2) 次节点(Secondary) (3) 仲裁节点(Arbiter) 二. 副本Oplog (1) ...
- MongoDB副本集搭建(超级详细)
MongoDB 副本集原理 什么是复制 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性 复制还允许从硬件故障和服务中断中恢复数据 为什么要复制 数据 ...
- MongoDB副本集搭建、连接php
文章目录 PHP连接MongoDB MongoDB副本集介绍 MongoDB副本集搭建 MongoDB副本集测试 PHP连接MongoDB php连接MongoDB需要安装拓展包有两种,分别是mong ...
- MongoDB副本集详解与搭建
1. 简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务. 副本集可提供冗余和高可用性,是所有生产部署的基础.也可以说,副本集类似于有自动故障恢复功能的主从 ...
最新文章
- pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件
- 使用VC++6.0创建MFC对话框程序
- (转)创业的注意事项
- matlab实战系列之人工鱼群算法求解TSP问题原理解析(下篇源码解析)
- 刚柔并济的开源分布式事务解决方案
- linux nginx 安装stream,Centos7下Nginx简单搭建与stream模块简单配置
- c# GDI+画折线图(初级版本)
- 单机装两个mysql_单机环境下安装多个MySQL服务器
- div区域内容抓取_企业微信群机器人应用:使用python从网站抓取行业资讯并定时推送...
- 计算机等级考试——四级网络工程师考试大纲
- python 求矩阵的特征值和特征向量
- 苹果MFI认证步骤汇总
- calcite learn
- 互联网公司刻板印象合集:程序员都秃头,商务个个是人精
- Redis高级项目实战,西安java程序员工资
- 不朽凡人 第五百二十章 有脾气冲我来
- mallat算法分析及c语言实现,图像的Mallat算法分解(Matlab代码)
- 比较容易考前计算机好的985大学,容易考的985有哪些?附性价比高的985大学排名...
- python软件下载-Python3.8下载
- linux下处理视频为flv格式
热门文章
- 壁纸引擎java运行库_Microsoft Windows Desktop Runtime v5.0.0 桌面程序运行库(含常规运行库)...
- jndi weblogic mysql_Tomcat配置JNDI数据源连接池
- Logback日志配置(分级别输出到不同文件)
- android cmd 右键菜单不见了,为Windows右键菜单提供打开命令行选项
- mysql 并发锁表_MySQL锁表的用法,防止并发情况下的重复数据
- 第十六届全国大学生智能车竞赛赛道审核 - 东北赛区第三批赛道审核
- 2021年春季学期-信号与系统-第十一次作业参考答案-第五小题
- 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
- AD633低成本模拟乘法器
- 如何在微信中增加附件?