部署monggodb副本集详细文档

news2024/11/15 17:33:22

部署monggodb副本集

MongoDB有多种高可用性架构可以选择,以下是其中几种常见的高可用性架构:

副本集(Replica Set):副本集是MongoDB中最基本的高可用性架构。它由多个节点组成,其中有一个主节点(Primary),其余节点为从节点(Secondary)。主节点负责处理所有的写操作,从节点用于提供读取操作的负载均衡和容错能力。如果主节点发生故障,副本集会进行自动选举产生新的主节点,以保证系统的可用性。

分片集群(Sharded Cluster):分片集群是一种可扩展性和高可用性的架构。该架构将数据划分为多个分片(Shard),每个分片存储部分数据。每个分片有自己的副本集,以提供高可用性。一个分片集群还包括多个路由节点(Router),它们负责将数据请求路由到正确的分片上,实现负载均衡。

复制集群(Replica Set Cluster):复制集群是一种将多个副本集组合在一起形成的高可用性架构。每个副本集都是独立的,负责存储一部分数据并提供读写能力。复制集群通过在不同的数据中心或服务器上分布副本集来提高系统的容错性和可用性。

部署monggodb三节点副本集

首先修改主机名

192.168.197.136    hostnamectl set-hostname monggodb-1

192.168.197.137    hostnamectl set-hostname monggodb-2

192.168.197.138   hostnamectl set-hostname monggodb-3

下载安装包(三台节点都操作)

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.19.tgz --no-check-certificate

安装monggodb(三台节点都操作)

tar -zxvf mongodb-linux-x86_64-rhel70-5.0.19.tgz  

mv mongodb-linux-x86_64-rhel70-5.0.19  /data/mongodb

配置环境变量(三台节点都操作)

vim /etc/profile    最底部添加

MONGODB_HOME=/data/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile

创建数据库目录(三台节点都操作)

mkdir mongodb/data   数据存储目录

mkdir mongodb/log 日志存储目录

chown tom.tom /data/mongodb -R

三台节点做host解析

vim /etc/hosts

192.168.197.136 monggodb-1

192.168.197.137 monggodb-2

192.168.197.138 monggodb-3

scp /etc/hosts monggodb-2:/etc/hosts

scp /etc/hosts monggodb-3:/etc/hosts

运行monggodb使用root或者普通用户看需求

mongodb-1节点

mongod --replSet monggodb --dbpath /data/mongodb/data/ --logpath /data/mongodb/log/mongod.log --port 27017 --bind_ip monggodb-1 --logappend --fork

mongodb-2节点

mongod --replSet monggodb --dbpath /data/mongodb/data/ --logpath /data/mongodb/log/mongod.log --port 27017 --bind_ip monggodb-2 --logappend --fork

mongodb-3 节点

mongod --replSet monggodb --dbpath /data/mongodb/data/ --logpath /data/mongodb/log/mongod.log --port 27017 --bind_ip monggodb-3 --logappend --fork

启动命令参数

--replSet  是设定副本集的名字

--dbpath  是指定存储目录路径

--logpath 是指定日志文件路径

--port  是指定运行端口

--bind_ip   是monggodb服务监听的ip

--logappend  是将新的日志信息追加到现有的日志文件中(不加的话默认覆盖之前的日志)

--fork  是后台运行的方式启动

Monggodb副本集初始化

在monggodb-1登录客户端

mongo --host monggodb-1 --port 27017    

执行副本集初始化命令

rs.initiate()

添加monggodb-2、monggodb-3节点到副本集

rs.add("monggodb-2:27017")

rs.add("monggodb-3:27017")

查看当前副本集所有角色

rs.status().members或者rs.status()

初次添加节点到副本集时有的从节点可能因为网络原因选举另一个从节点当做主节点

在主节点指向异常的时候我们可以使用命令来手动指定主节点

来到节点3执行下面命令

rs.syncFrom("monggodb-1:27017")

可以看到主节点手动指定为节点1了

删除副本集角色的命令

rs.remove("mongodb:27017")

在副本集中添加完角色启动另外两个节点(在各自节点启动)

mongo --host monggodb-2 --port 27017

mongo --host monggodb-3 --port 27017

到这mongodb就部署完成了

在monggodb-3或者-2节点输入rs.status()  可以查看副本集状态

rs.status()回显信息的每个参数的含义:

- set: 副本集的名称。

- date: 运行状态报告生成的时间。

- myState: 代表当前节点的状态。2表示该节点为主节点。

- term: 当前副本集选举的期数。NumberLong(1)表示当前为第1个选举期。

- syncSourceHost: 主节点的地址。在此示例中,主节点为"mongodb-1:27017"。

- syncSourceId: 主节点在副本集中的成员ID。在此示例中,主节点的成员ID为0。

- heartbeatIntervalMillis: 副本集成员之间进行心跳检测的间隔时间(以毫秒为单位)。

- majorityVoteCount: 副本集中需要达成多数意见的成员数量。

- writeMajorityCount: 执行写操作所需的成员数量。

- votingMembersCount: 副本集中有投票权的成员数量。

- writableVotingMembersCount: 副本集中有投票权且可写的成员数量。

- optimes: 包含与操作时间相关的信息。

- lastCommittedOpTime: 最后已提交的操作时间。ts表示时间戳,t表示选举期。

- lastCommittedWallTime: 最后已提交的操作的墙钟时间戳。

- readConcernMajorityOpTime: 在多数态度下进行读取操作的操作时间。

- appliedOpTime: 最后已应用的操作时间。

- durableOpTime: 最后持久化的操作时间。

- lastAppliedWallTime: 最后已应用操作的墙钟时间戳。

- lastDurableWallTime: 最后持久化操作的墙钟时间戳。

- lastStableRecoveryTimestamp: 上次稳定恢复的时间戳。

测试一下当前主节点挂掉后是否会自动选举主节点

ps -ef |grep mongod

kill -9 101886   杀掉monggodb-1节点

来到monggodb-2节点查看当前副本集信息

mongo --host mongodb-2 --port 27017

rs.status()

可以看到mongodb-3被自动选举为主节点,到这副本集就部署完成了

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/823262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指针初阶(超详解)

指针初阶 1.指针是什么2.指针和指针类型2.1 指针-整数2.2 指针的解引用 3.野指针3.1 野指针成因3.2如何避免野指针 4.指针运算4.1 指针-整数4.2 指针-指针4.3 指针的关系运算 5.指针和数组6.二级指针7.指针数组 1.指针是什么 指针是什么? 指针理解的2个要点&#xf…

express学习笔记5 - 自定义路由异常处理中间件

修改router/index.js,添加异常处理中间件 *** 自定义路由异常处理中间件* 注意两点:* 第一,方法的参数不能减少* 第二,方法的必须放在路由最后*/ router.use((err, req, res, next) > {console.log(err);const msg (err &…

如何制作VR全景地图,VR全景地图可以用在哪些领域?

引言: 随着科技的迅速进步,虚拟现实(VR)技术正逐渐渗透到各个领域。VR全景地图作为其中的重要应用之一,为人们提供了身临其境的全新体验。 一.什么是VR全景地图? VR全景地图是一种利用虚拟现实技术&…

RTC晶振两端要不要挂电容

发现GD32的RTC晶振两端需要挂电容,STM32的RTC晶振两端不需要挂电容。 STM32的RTC晶振两端,不需要挂电容,这样晶振启振很容易,挂大了,却难启动,且温度越低,启动越难。 有人说负载电容为6pF的晶振…

(一)初识streamlit——安装以及初步应用

1 前言 最近我开发了一款基于Streamlit的舌体分割演示应用,并将其发布在Streamlit Cloud上。现在,任何人都可以通过访问应用的链接,轻松体验这个舌体分割项目。 相关链接:舌体分割的初步展示应用——依托Streamlit搭建demo 基于此…

2023年第四届“华数杯”数学建模思路 - 案例:退火算法

## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上,退火(annealing)现象指物体逐渐降温的物理现象,温度愈低&#…

【Nginx13】Nginx学习:HTTP核心模块(十)Types、AIO及其它配置

Nginx学习:HTTP核心模块(十)Types、AIO及其它配置 今天学习的内容也比较简单,主要的是 Types 相关的配置,另外还会了解一下 AIO 以及部分没有特别大的分类归属的配置指令的使用。后面的内容都是 HTTP 核心模块中比较小…

植物大战僵尸修改器制作--从入门到入土

文章目录 基础准备基址偏移表常规项目卡槽植物种植无冷却无限阳光浓雾透视基本原理HOOK除雾代码 种植植物基本原理远程线程注入dll函数远程线程卸载dll函数关键dll函数失败代码远程线程代码注入(推荐) 种植僵尸基本原理种植僵尸函数--dll注入版远程代码注入版 完整程序代码参考…

npm ERR! code EPERM npm ERR! syscall unlink npm ERR!错误解决方法

npm ERR! code EPERM npm ERR! syscall unlink npm ERR!错误解决方法 1、问题描述2、解决方法 1、问题描述 由于之前电脑系统的原因,电脑重置了一下,之前安装的环境都没了,然后在重新安装node.js后在使用npm安装时总是报如下错误&#xff1a…

如何在免费版 pycharm 中使用 github copilot (chatGPT)?

起因 在 vscode 中使用了 github copilot 以后,感觉这个人工智能还不错。 但 vscode 对于 python 项目调试并不是特别方便,所以想在 Pycharm 中也能使用同一个 github 账号,用上 copilot 的功能。 不需要等待,安装即用&#xff…

Android复习(Android基础-四大组件)—— Service

1. Service的概述 Service是一个可以在后台长期运行并且不需要和用户进行交互的应用组件。 主要负责:不需要和用户交互而且还要求长期运行的任务,比如耗时操作。 Service不是运行在一个独立的进程当中,不依赖于任何用户界面。 其依赖于创建…

无线电蓝牙音频-BES数字音频系统音频流图

+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) (1)音乐播放音频流图 Decode"(解码)是指将编码后的数据转换回原始格式或可读取的形式的过程,SBC解码成PCM

Linux第三章之重定向 管道命令 环境变量PATH

一、了解Linux目录配置标准FHS FHS本质一套规定Linux目录结构,软件建议安装位置的标准。 使用Linux来开发产品或者发布软件的公司、个人太多,如果每家公司或者个人都按照自己的意愿来配置文件或者软件的存放位置,这无疑是一场灾难。 #进入…

WordPress--关闭主题和插件的自动更新

原文网址:WordPress--关闭主题和插件的自动更新_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何关闭WordPress主题和插件的自动更新提示。 方法 使用插件:Eay Updates Manager 安装完插件后,所有插件被管理,并自动关闭更新&…

PDM系统的协同优势

在现代制造业中,产品的复杂性和多样性日益增加,要实现高效的生产和交付,协同合作显得尤为重要。而PDM系统(Product Data Management,产品数据管理)作为关键工具,正是提升协同效率的有力支持。让…

NLP实战9:Transformer实战-单词预测

目录 一、定义模型 二、加载数据集 三、初始化实例 四、训练模型 五、评估模型 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 模型结构图: &a…

【编程语言 · C语言 · malloc函数】

【编程语言 C语言 malloc函数】https://mp.weixin.qq.com/s?__bizMzg4NTE5MDAzOA&mid2247491503&idx1&sn856b0ee891614a00ae78e84161861e48&chksmcfade356f8da6a404f586365f1987cfc193c0465faf51d959bed9dc5e5e8ce6c112f607f18f3&payreadticketHOUhzlYV…

css图标 | 来自 fontawesome 字体文件的586 个小图标

1. css效果 /*!* Font Awesome 4.4.0 by davegandy - http://fontawesome.io - fontawesome* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)*/.fa-glass:before {content:"\f000"} .fa-music:before {content:"\f001"…

云原生势不可挡,如何跳离云原生深水区?

云原生是云计算领域一大热词,伴随云原生概念而来的是数字产业迎来井喷、数字变革来临、数字化得以破局以及新一波的技术红利等等。云原生即“云”原生,顾名思义是让“应用”最大程度地利用云的能力,发挥云价值的最佳路径。具体来说&#xff0…

transformers里的AutoTokenizer之返回值token_type_ids(二)

在很多案例中,AutoTokenizer会返回token_type_ids这个结果: token_type_ids的解释: 对于两个句子对来说,上一句都标识为0,下一句都标识为1。