既要有副本集的热备功能,又要充分利用多台服务器性能
01.
详细配置步骤如下:
02.
1、配置shard1用到复制集 s1:
03.
在serverA上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_1/db --logpath=/data/mongo/s1_1/log/mongo.log --logappend --fork
04.
在serverB上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_2/db --logpath=/data/mongo/s1_2/log/mongo.log --logappend --fork
05.
在serverC上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_3/db --logpath=/data/mongo/s1_3/log/mongo.log --logappend --fork
06.
连接三个节点的任一个初始化复制集s1
07.
>use admin
08.
>config = {_id:'s1',members:[{_id:0,host:'serverA:27020',priority:1},{_id:1,host:'serverB:27020'},{_id:2,host:'serverC:27020'}]}
09.
>rs.initiate(config)
10.
>rs.status()
11.
另外对复制集s1的所有节点都执行如下命令确保所有节点都能分担读取的压力
12.
>db.getMongo().setSlaveOk();
13.
2、配置shard2用到复制集 s2:
14.
在serverA上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_1/db --logpath=/data/mongo/s2_1/log/mongo.log --logappend --fork
15.
在serverB上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_2/db --logpath=/data/mongo/s2_2/log/mongo.log --logappend --fork
16.
在serverC上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_3/db --logpath=/data/mongo/s2_3/log/mongo.log --logappend --fork
17.
连接三个节点的任一个初始化复制集s2
18.
>use admin
19.
>config = {_id:'s2',members:[{_id:0,host:'serverA:27021'},{_id:1,host:'serverB:27021',priority:1},{_id:2,host:'serverC:27021'}]}
20.
>rs.initiate(config)
21.
>rs.status()
22.
另外对复制集s2的所有节点都执行如下命令确保所有节点都能分担读取的压力
23.
>db.getMongo().setSlaveOk();
24.
3、配置三台Config Server:
25.
在serverA上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork
26.
在serverB上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork
27.
在serverC上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork
28.
4、配置三台Route Server:
29.
在serverA上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017
30.
在serverB上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017
31.
在serverC上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017
32.
5、配置Shard Cluster:
33.
连接任一mongos进程执行以下命令:
34.
use admin
35.
sh.addShard("shard1/serverA:27020,serverB:27020,serverC:27020")
36.
sh.addShard("shard2/serverA:27021,serverB:27021,serverC:27021")
37.
db.printShardingStatus()
38.
6、激活数据库及集合的分片功能:
39.
连接任一mongos进程执行以下命令:
40.
db.runCommand({enablesharding:"testdb"})
41.
db.runCommand({shardcollection:"testdb.collection_test",key:{_id:1}})
42.
7、登录mongos添加用户:
43.
use admin
44.
db.addUser("<
user
>","<
password
>")
45.
db.addUser("<
user
>","<
password
>",true) //添加只读用户
46.
8、关闭三台机器的全部mongod,mongos:
47.
sudo killall mongod
48.
sudo killall mongos
49.
9、生成keyfile:(每个进程的key file都保持一致)
50.
openssl rand -base64 753 >keyfile
51.
将生成的keyfile 拷贝到mongod/mongos 进程对应的文件夹
52.
并执行语句更改权限:sudo chmod 600 keyfile
53.
使用--keyFile参数指定前面生成的keyfile文件,重启三台机器全部mongod,mongos进程
54.
在serverA上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_1/db --logpath=/data/mongo/s1_1/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_1/keyfile
55.
在serverB上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_2/db --logpath=/data/mongo/s1_2/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_2/keyfile
56.
在serverC上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_3/db --logpath=/data/mongo/s1_3/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_3/keyfile
57.
58.
在serverA上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_1/db --logpath=/data/mongo/s2_1/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_1/keyfile
59.
在serverB上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_2/db --logpath=/data/mongo/s2_2/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_2/keyfile
60.
在serverC上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_3/db --logpath=/data/mongo/s2_3/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_3/keyfile
61.
62.
在serverA上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
63.
在serverB上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
64.
在serverC上:mongod -fork --configsvr --dbpath /data/mongo/config/db --port 27018 --logpath /data/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
65.
66.
在serverA上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
67.
在serverB上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
68.
在serverC上:mongos -fork --logpath /data/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
69.
完毕!
相关推荐
mongodb-spark官方连接器,运行spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:1.1.0可以自动下载,国内网络不容易下载成功,解压后保存到~/.ivy2目录下即可。
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
# CentOS安装 + MongoDB安装部署(单节点+副本集+分片)详细教程 ## 一、CentOS系统安装 在开始MongoDB的安装之前,首先需要确保你有一台运行CentOS的操作系统。以下是如何在CentOS上进行安装的步骤: 1. **更新...
在本文档中,我们将详细介绍如何在CentOS 7.0系统上搭建基于MongoDB 3.4.3版本的集群环境,包括分片(sharding)和副本集(replica sets)的配置。本文档将介绍相关概念、环境准备、机器规划及端口分配、集群搭建的...
在Cent OS系统上安装和部署MongoDB,可以分为几个关键步骤:安装Cent OS、安装MongoDB、配置单节点、设置副本集以及部署分片集群。下面将详细讲解这些过程。 **1. 安装Cent OS** 首先,确保你的计算机上已经安装了...
MongoDB4.2分片及副本集群搭建 MongoDB集群 MongoDB分片 MongoDB副本 MongoDB副本集群
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
本解决方案通过使用 Kubernetes 部署 MongoDB 分片(Sharding)和副本集(Replica Set),从而实现 MongoDB 集群的自动化管理和高可用性。 在本解决方案中,我们首先需要安装 Kubernetes 环境,并且需要准备好 NFS ...
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
Spring集成MongoDB官方指定jar包:spring-data-mongodb-1.4.1.RELEASE.jar
赠送jar包:mongodb-driver-sync-4.2.3.jar; 赠送原API文档:mongodb-driver-sync-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-sync-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-sync-4.2.3....
windows版本 mongodb shell:mongosh-2.2.6-win32-x64.zip mongodb shell :https://www.mongodb.com/try/download/shell mongodb相关官网下载地址: mongodb社区版:...
赠送jar包:mongodb-driver-core-4.2.3.jar; 赠送原API文档:mongodb-driver-core-4.2.3-javadoc.jar; 赠送源代码:mongodb-driver-core-4.2.3-sources.jar; 赠送Maven依赖信息文件:mongodb-driver-core-4.2.3....
Java开发案例-springboot-25-整合MongoDB-源代码+文档.rar Java开发案例-springboot-25-整合MongoDB-源代码+文档.rar Java开发案例-springboot-25-整合MongoDB-源代码+文档.rar Java开发案例-springboot-25-整合...
MongoDB 是一个高性能、分布式、开源的文档型数据库,它支持分片(sharding)和副本集(replica sets)来实现水平扩展和高可用性。分片是将数据分散到多个物理节点上,以处理大数据量和高并发场景;副本集则是为了...
MongoDB分片副本集集群搭建的知识点包含了以下几个方面: 1. MongoDB分片架构的基本组成:MongoDB分片架构由mongos(路由服务器)、config-server(配置服务器)和shard(分片服务器)三部分组成。mongos负责作为...
mongodb副本集加分片集群安全认证使用账号密码登录
MongoDB 是一个高性能、开源、无模式的文档型数据库,被广泛应用于Web应用程序、数据分析、内容管理系统等场景。它支持多种平台,包括 Linux,而针对Linux的架构有多种,如x86_64(AMD64)和aarch64(ARM64)。在本...
官网下载的:mongodb-org-server-4.4.0-1.el7.x86_64.rpm 官网速度慢,此处放一份。 下载地址: https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.0-1.el7.x86_64.rpm 无...
- 分布式:MongoDB支持分布式部署,可以构建多节点复制集和分片集群,以实现高可用性和水平扩展。 - 文档型:MongoDB以BSON(二进制JSON)格式存储数据,这种格式既能保持JSON的易读性,又能提高存储效率。 - ...