mongoDB之Replica Set集群安装

2024-01-10 15:18

本文主要是介绍mongoDB之Replica Set集群安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Replica Set准确讲不完全是集群,只是一个主从复制的加强版

概念如下:

primary:主节点客户端写操作发生在这里。

secondary:副本,可以负载读操作,通过复制primary的oplog来实现数据同步

arbiter:仲裁节点,作用是当primary宕掉之后从secondarys选择一个变成primary



 

环境准备:

linux系统版本:

 

$ cat /proc/version
Linux version 2.6.32-358.el6.x86_64 (mockbuild@x86-022.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jan 29 11:47:41 EST 2013

三台服务器,详情如下:

 

 

192.168.38.17   --primary
192.168.38.18   --secondary
192.168.38.19   --arbiter

mongoDB版本:

 

mongodb-linux-x86_64-2.6.9

安装部署:

1.配置primary.conf,secondary.conf和arbiter.conf

#primary.conf:

 

#primary.conf
dbpath=/home/admin/data/p
logpath=/home/admin/log/primary.log
pidfilepath=/home/admin/data/primary.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.17
port=27017
oplogSize=10000
fork=true
noprealloc=true

#secondary.conf:

 

 

#secondary.conf
dbpath=/home/admin/data/s
logpath=/home/admin/log/secondary.log
pidfilepath=/home/admin/data/secondary.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.18
port=27017
oplogSize=10000
fork=true
noprealloc=true

#arbiter.conf:

 

 

dbpath=/home/admin/data/a
logpath=/home/admin/log/arbiter.log
pidfilepath/home/admin/data/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.19
port=27017
oplogSize=10000
fork=true
noprealloc=true

上述配置文件最好在每个集群上都放置,这样就能保证配置文件一致

2.启动

 

分别在不同的节点上加载不同的配置

192.168.38.17启动:

 

bin/mongod -f /home/admin/mongodb/primary.conf

192.168.38.18启动:

 

 

bin/mongod -f /home/admin/mongodb/secondary.conf

192.168.38.19启动:

bin/mongod -f /home/admin/mongodb/arbiter.conf

3.登陆系统配置各个节点

bin/mongo 192.168.38.17:27017   

执行如下命令:

>use admin
>cfg={"_id": "testrs","members": [{"_id": 0,"host": "192.168.38.17:27017","priority": 2},{"_id": 1,"host": "192.168.38.18:27017","priority": 1},{"_id": 2,"host": "192.168.38.19:27017","arbiterOnly": true}]
}; 
>rs.initiate(cfg)  

此时配置已生效,可以通过命令查看相应的信息

4.查看目前各个节点的状态:

rs.status()

结果如下:

{"set" : "testrs","date" : ISODate("2015-04-03T09:02:29Z"),"myState" : 1,"members" : [{"_id" : 0,"name" : "192.168.38.17:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 21104,"optime" : Timestamp(1428032802, 2),"optimeDate" : ISODate("2015-04-03T03:46:42Z"),"electionTime" : Timestamp(1428030689, 1),"electionDate" : ISODate("2015-04-03T03:11:29Z"),"self" : true},{"_id" : 1,"name" : "192.168.38.18:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 21070,"optime" : Timestamp(1428032802, 2),"optimeDate" : ISODate("2015-04-03T03:46:42Z"),"lastHeartbeat" : ISODate("2015-04-03T09:02:27Z"),"lastHeartbeatRecv" : ISODate("2015-04-03T09:02:28Z"),"pingMs" : 0,"syncingTo" : "192.168.38.17:27017"},{"_id" : 2,"name" : "192.168.38.19:27017","health" : 1,"state" : 7,"stateStr" : "ARBITER","uptime" : 21070,"lastHeartbeat" : ISODate("2015-04-03T09:02:29Z"),"lastHeartbeatRecv" : ISODate("2015-04-03T09:02:29Z"),"pingMs" : 0}],"ok" : 1
}

此时配置已经完成,kill主节点之后查看状态会自动切换

 

PS:默认情况下副本是不会负载读操作的,如果打算让副本负载一部分读操作那么可以参见另外一篇博客

这篇关于mongoDB之Replica Set集群安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591222

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4