mongo 分片集群的搭建
MongoDB版本
当前使用的MongoDB版本为4.2.0,下载地址.https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.0.tgz
关闭防火墙
systemctl stop filewalld
集群架构
副本集

若要查看具体的文档,可以访问官方文档,文章中很多内容都可以参考https://docs.mongodb.com/manual/,地址
分片

分三步:
(1).shard副本集的建立
(2).config的replica set 建立
(3).mongos 路由的建立
1.shard副本集的建立
共两个shard,shard1和shard2
(1)三台服务器上分别建立这个文件,及创建需要的目录
mkdir /data/shard1 -p
mkdir /data/logs/12305 -p
shard1.conf
storage:
   dbPath: /data/shard1/data
   journal:
      enabled: true
   directoryPerDB: true
   #syncPeriodSecs: 60
   engine: wiredTiger
processManagement:
   fork: true
   pidFilePath: /data/shard1/mongod.pid
net:
   bindIp: 0.0.0.0
   port: 12305
systemLog:
   destination: file
   path: /data/logs/12305/log.txt
   logAppend: true
#security:
#   keyFile: /data/phpmongo-keyfile
#   authorization: enabled
operationProfiling:
   slowOpThresholdMs: 100
   mode: slowOp
replication:
   #oplogSizeMB: 20000
   replSetName: shard1
sharding:
   clusterRole: shardsvr
重启服务
/usr/bin/mongod -f shard1.conf
(2) 登陆任意的mongo客户端
/usr/bin/mongo --host 主机ip --port 12305
use admin
storage:
   dbPath: /data/confser/data
   journal:
      enabled: true
   directoryPerDB: true
   #syncPeriodSecs: 60
   engine: wiredTiger
processManagement:
   fork: true
   pidFilePath: /data/confser/mongoconf.pid
net:
   bindIp: 0.0.0.0
   port: 12201
systemLog:
   destination: file
   path: /data/logs/12201/log.txt   logAppend: true
replication:
  oplogSizeMB: 2048
  replSetName: csvr
sharding:
  clusterRole: configsvr
processManagement:
  fork: true
#security:
#   keyFile: /data/phpmongo-keyfile
#   authorization: enabled
重启服务
/usr/bin/mongod -f confser.conf
(2) 登陆任意的mongo客户端
/usr/bin/mongo --host 主机ip --port 12201
use admin
processManagement:
   fork: true
   pidFilePath: /data/mongos/mongos.pid
net:
   bindIp: 0.0.0.0
   port: 12101
systemLog:
   destination: file
   path: /data/logs/12101/log.txt
   logAppend: true
#security:
#   keyFile: /data/phpmongo-keyfile
#   #authorization: enabled  ##is available only for mongod.
sharding:
   configDB: csvr/mongoconf-node1:12201,mongoconf-node2:12201,mongoconf-node3:12201
重启服务
/usr/bin/mongos -f mongos.conf
(2) 登陆任意的mongo客户端
/usr/bin/mongo --host 主机ip --port 12101
mongos>use admin
添加分片
use admin
- db.runCommand( { addshard : "shard1/mongoshard1-node1:12305,mongoshard1-node2:12305,mongoshard1-arb01:12305",name:"shard1"} )
 - db.runCommand( { addshard : "shard2/mongoshard2-node1:12306,mongoshard2-node2:12306,mongoshard2-arb01:12306",name:"shard2"} )
 
激活分片
需要注意的是,分片功能是需要手动开启的.
在mongo shell中,这里设置一个测试数据库,用来测试分片的功能.
- db.runCommand( { enablesharding : "testdb" } )
 - db.runCommand( { shardcollection : "testdb.users",key : {id: 1} } )
 
创建测试数据,用来测试分片功能,下面的代码向数据库中插入了200w条数据,由于数据量比较大,所以批量插入的时候,时间会稍微有点久.
- var arr=[];
 - for(var i=0;i<2000000;i++){
 - var uid = i;
 - var name = "mongodb"+i;
 - arr.push({"id":uid,"name":name});
 - }
 - db.users.insertMany(arr);
 
查询状态
通过sh.status()函数查看当前分片的状态,查看副本集的状态通过rs.status().
库,用来测试分片的功能.
- db.runCommand( { enablesharding : "testdb" } )
 - db.runCommand( { shardcollection : "testdb.users",key : {id: 1} } )
 
创建测试数据,用来测试分片功能,下面的代码向数据库中插入了200w条数据,由于数据量比较大,所以批量插入的时候,时间会稍微有点久.
- var arr=[];
 - for(var i=0;i<2000000;i++){
 - var uid = i;
 - var name = "mongodb"+i;
 - arr.push({"id":uid,"name":name});
 - }
 - db.users.insertMany(arr);
 
查询状态
通过sh.status()函数查看当前分片的状态,查看副本集的状态通过rs.status().
mongo 分片集群的搭建的更多相关文章
- Mongo--04  Mongo分片集群
		
目录 一.分片的概念 二. 分片工作原理 三.IP端口目录规划 1.IP端口规划 2.目录规划 四.分片集群搭建副本集步骤 1.安装软件 2.创建目录 3.创建配置文件 4.优化警告 5.启动服务 6 ...
 - 从零搭建mongo分片集群的简洁方法
		
一.目录 1.mongo路径,config数据路径,shard数据路径
 - mongo分片集群部署
		
测试环境192.168.56.101-213 前期准备: openssl rand -base64 756 > /home/software/mongodb/mongodbkey chmod ...
 - Mongo分片集群脚本
		
bash大法好啊,一键玩mongo. 我的mongo版本是:MongoDB shell version v4.0.2 这里准备为大家献上Mongo创建分片和可复制集的脚本,以及在部署的时候踩的坑. 分 ...
 - MongoDB分片集群环境搭建记录
		
--创建配置服务器mongod.exe --logpath "G:\USERDATA\MONGODB\Test2\Log\mongodb.log" --logappend --db ...
 - MongoDB Sharding(二) -- 搭建分片集群
		
在上一篇文章中,我们基本了解了分片的概念,本文将着手实践,进行分片集群的搭建 首先我们再来了解一下分片集群的架构,分片集群由三部分构成: mongos:查询路由,在客户端程序和分片之间提供接口.本次实 ...
 - 【MongoDB】在windows平台下搭建mongodb的分片集群(二)
		
在上一片博客中我们讲了Mongodb数据库中分片集群的主要原理. 在本篇博客中我们主要讲描写叙述分片集群的搭建过程.配置分片集群主要有两个步骤.第一启动全部须要的mongod和mongos进程. 第二 ...
 - Windows 搭建MongoDB分片集群(二)
		
在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...
 - MongoDB之分片集群(Sharding)
		
MongoDB之分片集群(Sharding) 一.基本概念 分片(sharding)是一个通过多台机器分配数据的方法.MongoDB使用分片支持大数据集和高吞吐量的操作.大数据集和高吞吐量的数据库系统 ...
 
随机推荐
- 分布式-技术专区-Redis并发竞争key的解决方案详解
			
Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿.缓存雪崩.缓存和数据一致性,以及今天要谈到的缓存并发竞争.这里的并发指的是多个redis的clie ...
 - Excel_PoweQuery——条件计数、条件求和
			
岁月不居,时节如流. 时光荏苒,岁月如梭. 前面两段充分体现了博主深厚的文学素养,别和博主争,博主说啥就是啥. 其实,对于大量数据的处理,这几年微软Office做的不单单是2007的时候把Excel的 ...
 - Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装
			
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
 - Linux 100个常用指令
			
1.ls 列出目录内容. 文件属性: -:普通文件 d:目录文件 b:块设备 c:字符设备文件 l:符号连接文件 p:命令管道 s:套接字文件 文件权限: 9位数字,每3位一组 文件硬链接次数 文件所 ...
 - TypeError: Object of type 'int32' is not JSON serializable
			
将模型用flask封装,返回json时报错:TypeError: Object of type 'int32' is not JSON serializable 网上搜索出的解决方案:重写json.J ...
 - Codeforces Round #568 (Div. 2) G2. Playlist for Polycarp (hard version)
			
因为不会打公式,随意就先将就一下? #include<cstdio> #include<algorithm> #include<iostream> #include ...
 - redis配置篇
			
配置 Redis的配置信息在/etc/redis/redis.conf下. 查看 sudo vi /etc/redis/redis.conf 核心配置选项 绑定ip:如果需要远程访问,可将此⾏注释,或 ...
 - Java基础之ArrayList类
			
一.ArrayList ArrayList继承了AbstractList分别实现了List.RandomAccess(随机访问).Cloneable(可被克隆(复制的意思)). Serializabl ...
 - 如何在webpack中使用loader
			
一.什么是loader loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.因此,loader 类似于其他构建工具中“任务 ...
 - [Luogu P4178]Tree 题解(点分治+平衡树)
			
题目大意 给定一棵树,边带权,问有多少点对满足二者间距离$\leq K$,$n \leq 40000$. 题解 点分治专题首杀!$Jackpot!$ (本来看着题意比较简单想捡个软柿子捏,结果手断了… ...