最近折腾了一下最新版mongodb集群安装配置,目前测试可以运行,可能还有一些问题,需要慢慢去发现。
对于3.2之前的版本部署不了解,网上也有好多。总的来说,有以下几种部署方式:
1.单机部署
2.副本集部署
3.分片部署
4.分片副本集部署
前面几种部署都相对简单,这里不做说明。下面主要记录一下第4种方式部署,也是生产环境的建议部署方式,可以满足集群的高可用和高吞吐量。
有几个概念需要先说明一下:
configsvr:分片部署的配置节点,不存储具体数据,只存储分片的信息
shardcvr:分片部署的数据节点,存数具体的数据
mongos:分片路由节点,和configsvr关联,用户直接连接它完成数据库的操作。
primary:副本集的主节点,默认读写都在这个节点上操作,然后同步到其他副本节点上。
secondary:副本集从节点。
下面记录个按个分片,每个分片2个副本的配置过程:
需要注意的是,每一个组件都是一个单独的进程,一个mongo包要拷贝多分,来代表不同的组件。
1.首先规划好机器
总共三台机器:192.168.1.100,192.168.1.101,192.168.1.102
192.168.1.100:1个configsvr,3个shardsvr,1个mongos
192.168.1.101:1个configsvr,3个shardsvr,1个mongos
192.168.1.102:1个configsvr,3个shardsvr,1个mongos
一次配置configsvr、shardsvr、monogs。具体查看每个如何配置。
配置副本集:https://docs.mongodb.org/manual/tutorial/deploy-replica-set/
配置分片:https://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/
mongo配置选项:https://docs.mongodb.org/manual/reference/configuration-options/
2.启动所有的configsvr
连接任意一个configsvr,然后初始化configsvr副本集(注意3.2+版本支持configsvr副本集),在shell输入:
rs.initiate( { _id: "configrs", configsvr: true, members: [ { _id: 0, host: "192.168.1.100:27017" }, { _id: 1, host: "192.168.1.101:27017" }, { _id: 1, host: "192.168.1.102:27017" } ] } )
3.配置每个分片的副本集
启动所有的shard节点,第一个shard副本集的配置:连接任意一个shard1的节点,然后在shell输入:
rs.initiate({ "_id" : "shard1rs", "version" : 1, "members" : [ { "_id" : 0, "host" : "192.168.1.100:27018" }, { "_id" : 1, "host" : "192.168.1.101:27018" }, { "_id" : 2, "host" : "192.168.1.102:27018" } ] })
剩余的两个shard也要做类似的操作。
4.启动mongos
需要在mongos的配置中加入
configDB configrs/192.168.1.100:27017,192.168.1.101:27017,192.168.1.102:27017
指定mongos的监听端口为17710
5.为mongos加入shard分片信息
连接mongos的shell,然后输入:
sh.addShard("shard1rs/192.168.1.100:27018,192.168.1.101:27018,192.168.1.102:27018") sh.addShard("shard2rs/192.168.1.100:27019,192.168.1.101:27019,192.168.1.102:27019") sh.addShard("shard2rs/192.168.1.100:27020,192.168.1.101:27020,192.168.1.102:27020")
6.开启分片功能
mongo分片是相对collection来说的,也就是说要对collection设置分片。
首先需要开始database的shard功能,然后才能对collection进行分片配置。
在mongos的shell
开启database分片功能:
sh.enableSharding("data")
设置collection分片:
sh.shardCollection("data.user", { "_id": "hashed" } )
相关推荐
为了满足大规模数据处理的需求,本案例采用3台物理服务器搭建MongoDB集群,每台服务器上安装一个MongoDB实例,并通过合理的配置来实现数据的分片存储和高可用性。具体的部署规划如下: 1. **物理服务器准备**: - ...
在Linux 64位系统上安装MongoDB 3.2版本,可以为开发者提供一个强大的非关系型数据库解决方案,适用于处理大量半结构化和结构化数据。 首先,让我们了解MongoDB 3.2的主要特性: 1. **性能增强**:MongoDB 3.2引入...
**Spring Data MongoDB 3.2 整合指南** 在当今的软件开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱,而MongoDB作为一款非关系型数据库,因其高性能、高可扩展性和灵活的数据模型,成为了大数据和实时...
本篇实战笔记主要针对 MongoDB 3.2 版本,涵盖其安装、配置、基本操作以及一些高级功能。 #### 二、准备工作 在开始实战之前,我们需要做一些准备工作: 1. **网络环境**:确保计算机可以联网,以便下载相关软件和...
MongoDB 提供了一个官方的 yum 存储库,可以在 CentOS 上轻松安装和更新 MongoDB。你需要在 `/etc/yum.repos.d/` 目录下创建一个名为 `mongodb-org-3.2.repo` 的文件,然后添加以下内容: ``` [mongodb-org-3.2] ...
在3.2版本中,MongoDB 集群的搭建涉及到几个关键组件,包括mongos(查询路由器)、config server(配置服务器)以及shards(分片)。本文将详细介绍这些组件的功能及其在集群中的作用。 首先,mongos是查询路由器,...
### MongoDB集群安装配置详解 #### 一、引言 随着数据量的增长以及对高可用性的需求增加,构建MongoDB集群成为一种常见的解决方案。本文将详细介绍如何在Ubuntu 16环境下配置MongoDB集群,并通过实际步骤演示整个...
在压缩包"mongodb-win32-x86_64-2008plus-ssl-v3.2-latest.zip"中,包含的文件 "mongodb-win32-x86_64-2008plus-ssl-3.2.18-11-g385ed43" 是MongoDB的安装程序或二进制文件,具体版本为3.2.18。这个版本可能包含...
自 MongoDB 3.2 版本起,官方不再提供 32 位版本的支持,用户需选择 64 位版本进行安装。这一决定主要是考虑到 64 位系统能更好地利用内存资源,从而提高数据库性能。 **2.3 教程** 文档提供了详细的安装教程,...
本文将详细介绍MongoDB的安装、配置以及启动过程,并简要介绍MongoDB数据库的基础知识。 首先,让我们从安装开始。安装MongoDB通常包括以下几个步骤: 1. **运行安装文件**:下载MongoDB的安装程序,通常是.msi...
至此,你已经在Linux上成功安装并配置了MongoDB 3.2。不过,这只是基础步骤,MongoDB的管理和使用还有很多高级特性,如Sharding(分片)、Replication(复制集)、索引管理、性能调优等,都需要进一步学习和实践。...
在解压“mongodb-win32-i32-3.2.18.zip”后,你会得到一个包含MongoDB服务器、配置文件、日志文件夹等相关组件的目录结构。安装过程包括设置环境变量、创建数据目录、启动服务等步骤。安装完成后,你可以通过命令行...
1. 安装MongoDB C#驱动程序(通过NuGet包管理器或直接下载安装)。 2. 配置MongoDB连接字符串,通常在应用程序的配置文件(如`app.config`或`web.config`)中设置。 3. 引用驱动程序库,如`using MongoDB.Driver;`,...
#### 二、MongoDB安装配置 ##### 2.1 安装依赖包 首先确保系统已安装必要的依赖包。可以通过以下命令来安装: ```bash yum install -y git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib...
##### 3.2 将 MongoDB 添加至 Service 启动 1. **创建并编辑 service 文件**: ```bash vi mongodb.service ``` 2. **填写内容**: ``` [Unit] Description=mongodb After=network.target remote-fs.target ...
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list ``` 3. **更新软件包列表**: 更新你的系统软件包列表,以便包含...
在安装和配置MongoDB 3.2.0时,用户需要考虑系统兼容性,确保RHEL 6.2系统满足最低要求,并遵循官方提供的安装指南。安装过程中,需注意配置数据目录、设置系统限制(如ulimit)、创建数据文件权限以及启动和设置...
安装过程中,用户可以选择自定义安装路径,配置数据目录,以及设置启动服务等选项。安装完成后,可以通过命令行或MongoDB提供的管理工具(如MongoDB Compass)来管理数据库。 总的来说,MongoDB 3.2.4是一个强大且...