【运维日常】mongodb 集群生产实践

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

部署过程

在 MongoDB 中,可以通过以下步骤来部署一个集群:

1. 安装 MongoDB:首先,需要在每个节点上安装 MongoDB 数据库软件。可以从 MongoDB 官方网站下载适用于操作系统的安装程序,并按照官方文档提供的说明进行安装。

2. 规划架构:在部署集群之前,需要规划集群的架构和拓扑结构。MongoDB 支持多种集群架构,包括副本集(Replica Set)和分片集群(Sharded Cluster)。副本集用于提供数据冗余和高可用性,而分片集群用于处理大规模数据和负载。

   - 副本集:副本集包含多个节点,其中一个是主节点(Primary),其他节点是从节点(Secondary)。主节点负责处理所有写操作,从节点复制主节点的数据并可用于读操作。可以使用 `rs.initiate()` 命令初始化一个副本集。

   - 分片集群:分片集群由多个分片(Shard)组成,每个分片存储集群的一部分数据。还需要配置一个或多个配置服务器(Config Server)来管理元数据和分片信息。可以使用 `sh.addShard()` 命令将分片添加到集群中。

3. 配置节点:根据集群架构的选择,配置每个节点的角色和相关参数。

   - 副本集:在每个节点上配置副本集的成员角色,包括主节点、从节点和仲裁节点(Arbiter)。可以使用 `rs.add()` 命令将节点添加到副本集中,并使用 `rs.conf()` 命令进行配置。

   - 分片集群:在每个节点上配置分片集群的角色,包括分片、配置服务器和路由器(Router)。可以使用 `sh.addShard()` 命令将节点添加为分片,并使用 `sh.addShard()` 命令配置分片集群。

4. 启动集群:在每个节点上启动 MongoDB 服务,并确保节点之间可以相互通信。可以使用启动脚本或命令来启动 MongoDB 服务。

5. 验证集群:一旦集群启动,可以使用 MongoDB 提供的命令和工具来验证集群的状态和功能。例如,可以使用 `rs.status()` 命令来检查副本集的状态,或使用 `sh.status()` 命令来检查分片集群的状态。

以上是一个基本的 MongoDB 集群部署过程的概述。根据具体需求和复杂性,可能需要参考 MongoDB 的官方文档并进行更详细的配置和调整。此外,建议在生产环境中进行充分的测试和规划,并根据需求考虑安全性、性能调优和监控等方面的配置。

最佳实践

在 MongoDB 中,可以使用配置文件来指定 MongoDB 实例的各种设置。下面是配置文件的基本内容和启动集群的步骤:

  1. 创建配置文件:首先,创建一个文本文件,并将其命名为 mongod.conf(或其他自定义名称)。该文件将包含 MongoDB 实例的配置选项。

  2. 配置文件内容:打开配置文件,并根据需要添加或修改以下配置选项:

    • storage.dbPath:指定数据文件存储的路径。
    • systemLog.path:指定日志文件的路径。
    • net.bindIp:指定 MongoDB 监听的 IP 地址。
    • net.port:指定 MongoDB 监听的端口号。
    • replication.replSetName:对于副本集,指定副本集的名称。
    • sharding.clusterRole:对于分片集群,指定节点的角色,如 configsvrshardsvr 或 mongos
    • sharding.configDB:对于分片集群,指定配置服务器的连接字符串。

    还有其他许多配置选项,可以根据具体需求进行设置。可以参考 MongoDB 的官方文档,以获取更详细的配置选项和说明。

  3. 保存配置文件:保存配置文件,并确保文件名为 mongod.conf

  4. 启动集群:使用以下命令启动 MongoDB 集群:

    mongod --config /path/to/mongod.conf
    

    将 /path/to/mongod.conf 替换为实际的配置文件路径。

    对于分片集群,还需要启动配置服务器和路由器。可以使用以下命令启动配置服务器:

    mongod --configsvr --config /path/to/mongod.conf
    

    使用以下命令启动路由器(mongos):

    mongos --configdb <configdb_connection_string>
    

    将 <configdb_connection_string> 替换为实际的配置服务器连接字符串。

    启动集群后,每个节点将根据配置文件的设置运行 MongoDB 实例,并开始与其他节点通信和同步数据。

请注意,以上步骤仅为基本的配置和启动集群过程。在实际情况中,可能需要根据需求进行更详细的配置和调整。建议参考 MongoDB 的官方文档,并在生产环境中进行充分的测试和规划。

配置案例-副本集群配置:

# mongod.conf# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.
systemLog:destination: filelogAppend: truepath: /home/mongod/mongo-28100/production/log/mongod.logstorage:dbPath: /home/mongod/mongo-28100/production/data
##journal配置journal:enabled: true
##是否一个库一个文件夹directoryPerDB: true
##数据引擎engine: wiredTiger
##WT引擎配置wiredTiger:engineConfig:
##WT最大使用cache(根据服务器实际情况调节)cacheSizeGB: 2
##是否将索引也按数据库名单独存储directoryForIndexes: true
##表压缩配置collectionConfig:blockCompressor: zlib
##索引配置indexConfig:prefixCompression: true# how the process runs
processManagement:fork: true  # fork and run in backgroundpidFilePath: /home/mongod/mongo-28100/production/mongod.pid  # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfaces
net:port: 28888bindIp: x.x.x.x#security:#operationProfiling:replication:oplogSizeMB: 50replSetName: bi#sharding:## Enterprise-Only Options#auditLog:#snmp:

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

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

相关文章

以dzzoffice为例设置通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)

在测试dzzoffice的过程中&#xff0c;需要配置邮件服务器&#xff0c;dzzoffice的邮件设置有三种选项&#xff1a; 1、通过 PHP 函数的 sendmail 发送(推荐此方式) 2、通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证) 3、通过 PHP 函数 SMTP 发送 Email(仅 Windows 主机下有…

vulnhub_clover靶机渗透测试

clover靶机 文章目录 clover靶机信息收集ftp渗透web渗透横线移动权限提升靶机总结 靶机地址&#xff1a;https://www.vulnhub.com/entry/clover-1,687/ 信息收集 使用nmap扫描得到了很对端口&#xff0c;能用的也就是21 22 80三个端口&#xff0c;其他都是关闭的&#xff0c;全…

基于正点原子alpha开发板的第三篇系统移植

系统移植的三大步骤如下&#xff1a; 系统uboot移植系统linux移植系统rootfs制作 一言难尽&#xff0c;踩了不少坑&#xff0c;当时只是想学习驱动开发&#xff0c;发现必须要将第三篇系统移植弄好才可以学习后面驱动&#xff0c;现将移植好的文件分享出来&#xff1a; 仓库&…

医药行业投资公司都有哪些?医药企业项目投资分析实用工具

据药融云-投融资数据库信息调研结果发现&#xff0c;在 3000家参与医疗投资的资方中,有超200家专注医疗投资的机构。 资方的信息可以通过垂直的生物医药行业投融资数据库进行查找&#xff0c;该类数据库收载了全球绝大部分的生物医药行业投资机构信息&#xff08;包含了投资机构…

clickhouse之readonly解决方法

1&#xff0c;问题描述 日志报错写入ck报错&#xff1a;ru.yandex.clickhouse.except.ClickHouseUnknownException: ClickHouse exception, code: 1002, host: 192.16.1.19, port: 8123; Code: 242. DB::Exception: Table is in readonly mode: replica_path/clickhouse/tables…

$attrs 和 $listeners (vue2vue3)

目录 透传 Attributes Attributes 继承​ 对 class 和 style 的合并 v-on 监听器继承 深层组件继承 禁用 Attributes 继承 多根节点的 Attributes 继承 vue2 $attrs 和 $listeners $attrs 概念说明 $attrs 案例 $listeners 概念说明 $listeners案例 vue3 $attr…

【算法|双指针系列No.3】leetcode202. 快乐数

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

springboot整合websocket开箱即用

springboot-websocket整合项目开箱即用&#xff0c;ws服务端&#xff0c;包含了在线客户监听&#xff0c;发送指定客户端数据&#xff0c;发送所有客户端数据。还可以根据指定转发给某个客户端。 WebSocketConfig配置缓存大小设置&#xff0c;设置异步发送操作的超时时间&#…

为什么 0.1 + 0.1 !== 0.2

为什么 0.1 0.1 ! 0.2 总结了几个很有意思的基础题目&#xff0c;分享一下。 为什么 0.1 0.1 ! 0.2 看到这个问题&#xff0c;不得不想到计算机中的数据类型&#xff0c;其中浮点数表示有限的精度。那么它就无法精确的表示所有的十进制小数&#xff0c;所以在在某些情况下…

盲盒电商模式:融合神秘感与趣味性,带来消费者购买欲望与商业利益

盲盒电商模式是一种以“神秘感趣味性”为特点&#xff0c;将电商与社交购物相结合的新型商业模式。这种模式通过为消费者提供不确定性和惊喜&#xff0c;激发了消费者的购买欲望&#xff0c;同时也为商家拓展了销售渠道&#xff0c;带来了可观的商业利益。盲盒&#xff0c;字面…

在conda虚拟环境下安装PyTorch-gpu版本

conda环境配置 在conda虚拟环境下安装PyTorch-gpu版本1. 下载好anaconda以及CUDA2. 创建并进入虚拟环境 选择python版本3. 找对python torch torchvision cuda的对应版本 并 下载安装4. 测试是否成功5. 参考资料 在conda虚拟环境下安装PyTorch-gpu版本 引言&#xff1a; 学会在…

leetcode 73.矩阵置零

题目链接&#xff1a;leetcode 73 1.题目 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 2.示例 1&#xff09;示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&a…

bootstrapjs开发环境搭建

Bootstrapjs是一个web前端页面应用开发框架&#xff0c;其提供功能丰富的JavaScript工具集以及用户界面元素或组件的样式集&#xff0c;本文主要描述bootstrapjs的开发环境搭建。 如上所示&#xff0c;使用nodejs运行时环境、使用npm包管理工具、使用npm初始化一个项目工程test…

C#实现OPC DA转OPC UA服务器

运行软件前提前安装好OPC运行组件&#xff1a; 为方便演示&#xff0c;提前准备好了一个DAServer服务器&#xff1a; 接下来开始配置&#xff1a; 该软件主要实现的功能如下&#xff1a; 配置过程也相对简单&#xff1a; 第一步&#xff1a; 编辑如下文件&#xff1a; 第二步…

Android攻城狮学鸿蒙-配置

1、config.json配置 鸿蒙中的config.json应该类似于Android开发中Manifest.xml&#xff0c;可以进行页面的配置。根据顺序&#xff0c;会识别启动应用的时候&#xff0c;要打开哪个界面。 2、 Ability详解&#xff0c;以及与Android的Activity对比。 他人的学习文章连接&…

asp.net网上销售系统VS开发mysql数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

一、源码特点 asp.net 网上销售系统 是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为mysql&#xff0c;使用c#语言开发 aspnet 网上销售系统1 二、功能介绍 前台功能…

pdf文档内容提取pdfplumber、PyPDF2

测试pdfplumber识别效果好些&#xff1b;另外pdf这两个如果超过20多页就没法识别了&#xff0c;结果为空 1、pdfplumber 安装&#xff1a;pip install pdfplumber -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com代码&#xff1a; import pdfpl…

switch case 枚举常量

方法 Overridepublic OrderServeStatusEnumListResp orderServeStatusEnumList(String typeEnum) {String accountId LoginUtils.getLoginAccountId();log.info("OrderServiceServiceImpl.orderServeStatusEnumList ; 订单状态枚举类查询开始 accountId: {}", acco…

《C++ Primer》第5章 语句

参考资料&#xff1a; 《C Primer》第5版《C Primer 习题集》第5版 5.1 简单语句&#xff08;P154&#xff09; 在一个表达式的末尾加上 ; 就构成了表达式语句&#xff0c;其作用是执行表达式并丢弃结果。 空语句 由单独的 ; 构成的语句为空语句。空语句常用于语法上需要一…

Nginx 访问http强制自动跳转到https

根据项目需求&#xff0c;需要在nginx上开启SSL配置证书&#xff0c;https访问域名然后访问后端的http tomcat程序。需要设置http 80强制跳转https。 80配置添加 rewrite ^(.*)$ https://${server_name}$1 permanent; 完整配置信息如下 server {listen 80;server_nam…