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使用分片支持大数据集和高吞吐量的操作.大数据集和高吞吐量的数据库系统 ...
随机推荐
- python的起源和作用
python来源 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程 ...
- 14-vim-替换命令-01-替换
命令 英文 功能 工作模式 r replace 替换当前字符 命令模式 R replace 进入替换模式 替换模式 R命令进入替换模式,输入新字符替换当前光标所在位置的字符,替换完成后,按下ESC可以 ...
- 一句话概括 tcp三次握手
服务端和客户端都需要直到自己均可收发,因此需要三次握手. 简化三次握手: <img width="487" alt="2018-07-10 3 42 11" ...
- Java的枚举类型使用方法详解
1.背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏 ...
- C 编译器的“贪心法”
C语言中有单字符符号和多字符符号之分,那么,当C编译器读入一个字符‘/’后又跟了一个字符‘*’,那么编译器就必须做出判断:是将其作为两个分别的符号对待,还是合起来作为一个符号对待.C语言对这个问题的解 ...
- C#多线程的应用
1.进程 就像我们任务管理器里面运行的进程 进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括 ...
- JavaScript常见设计模式梳理
单例模式 单例模式,顾名思义就是保证每个类都只有一个实例对象. 其实现思路很简单,先判断实例是否存在,如果不存在则创建新的实例返回,如果存在则直接返回该实例. 策略模式 策略模式可以理解为:封装多个可 ...
- HTML5 原生API input file 来实现多图上传,并大图预览
闲来无事,突然想用原生来实现图片的多图上传. 一.效果图大致如下: 1.上传时可以选择多图 2.上传之后缩略图下过图如下: 3.点击缩略图,大图展示当前所点击的图片,并可以左右滑动查看其它的缩略图对应 ...
- Stream(Java 8)
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利.高效的聚合操作(aggregate operation),或者大批量数据操作 (b ...
- Delphi ComboBox组件 style=csDropDownlist 的赋值方法
赋值方法: ComboBox1.Items.Add( '文本 '); ComboBox1.ItemIndex := ComboBox1.Items.IndexOf( '文本 '); 清空: Combo ...