MongoDB集群搭建-分片

一.场景:

1,机器的磁盘不够用了。使用分片解决磁盘空间的问题。

2,单个mongod已经不能满足写数据的性能要求。通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。

3,想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。

二.搭建步骤:

1.准备服务器:

2.分片服务配置:【sharding】

上面准备的服务器有三台,每台机器上面都按照如下步骤安装分片服务,分片服务其实就是一个mongod进程;

下面我们就以192.168.0.106服务器为例子:

分片服务配置步骤:

(1)创建分片服务所需的文件目录:

配置目录:D:\mongodb_home\config

数据目录:D:\mongodb_home\data\shard

日志目录:D:\mongodb_home\logs

批处理目录:D:\mongodb_home\shells

(2)创建配置文件:(shard.conf文件)

目录:D:\mongodb_home\config\shard.conf

#shard.conf
dbpath=D:\mongodb_home\data\shard
logpath=D:\mongodb_home\logs\shard.log
journal=true
bind_ip=192.168.0.106
port=
shardsvr=true

(3)创建shell文件::(installShardServer.bat文件)

目录:D:\mongodb_home\shells\installShardServer.bat

#installShardServer.bat
d:
cd D:\mongodb_home\Server\3.6\bin
mongod.exe --config D:\mongodb_home\config\shard.conf --install

(4)安装分片服务:

目录:D:\mongodb_home\shells\installShardServer.bat

双击 installShardServer.bat来安装或启动服务;

分片注意:

其他两台机器,同上步骤配置即可。

配置文件更换ip地址即可;

3.配置服务配置:【config】

下面我们就以创建配置服务1为例子:

注意:mongodb3.6的特殊要求。

配置服务至少3个,只有一个的时候会报错误。

配置服务必须是副本集;

配置服务配置步骤:

(1)创建配置服务所需的目录:

配置目录:D:\mongodb_home\config

数据目录:D:\mongodb_home\data\config0

日志目录:D:\mongodb_home\logs

批处理目录:D:\mongodb_home\shells

(2)创建配置文件:

目录:D:\mongodb_home\data\config0\config0.conf

#config0.conf
dbpath=D:\mongodb_home\data\config0
logpath=D:\mongodb_home\logs\config0.log
journal=true
bind_ip=192.168.0.106
port=
replSet=testRs
configsvr=true

(3)创建shell文件:

目录:D:\mongodb_home\shells\installConfigServer0.bat

d:
cd D:\mongodb_home\Server\3.6\bin
mongod.exe --config D:\mongodb_home\config\config0.conf

(4)安装配置服务1:

目录:D:\mongodb_home\shells\installConfigServer0.bat

双击 installConfigServer0.bat来安装或启动服务;

配置服务注意:

配置服务使用端口来区分:

其他两个配置服务,同上步骤配置即可。

配置服务1端口:20000

配置服务2端口:21000

配置服务3端口:22000

4.路由服务配置:【route】

(1)创建路由服务所需的目录:

配置目录:D:\mongodb_home\config

日志目录:D:\mongodb_home\logs

(2)创建路由配置文件:

目录:D:\mongodb_home\config\route.conf

#route.conf
logpath=D:\mongodb_home\logs\route.log
bind_ip=192.168.0.106
port=
configdb=testRs/192.168.0.106:,192.168.0.106:,192.168.0.106:

注意:

路由配置文件中,不需要dbpath因为路由不存储数据。

路由配置文件中,最重要的是configdb,configdb是配置服务的地址

testRs是副本集的名称;

(3)创建路由shell文件:

目录:D:\mongodb_home\shells\InstallRouteServer.bat

#InstallRouteServer.bat
d:
cd D:\mongodb_home\Server\3.6\bin
mongos.exe --config D:\mongodb_home\config\route.conf

(4)安装路由服务:

目录:D:\mongodb_home\shells\InstallRouteServer.bat

双击 InstallRouteServer.bat来安装或启动服务;

(5)连接路由服务测试:

任意一台装mongodb的电脑即可:注意防火墙

通过mongodb中的mongo来连接路由服务【mongos】:

测试结果:

显示如下代码连接成功了!

5.分片:【核心】

(1)添加分片:

sh.addShard(“192.168.0.233:20000”) 
sh.addShard(“192.168.0.234:21000”) 
sh.addShard(“192.168.0.106:22000”)

(2)查看分片信息:

sh.status()

(3)数据库启用分片

School是数据库名称

sh.enableSharding('School')

(4)集合分片,设置片键

Name 集合中的键;

sh.shardCollection('School'.StudentInfo',{'Name':1})

MongoDB集群搭建-分片的更多相关文章

  1. Mongodb 集群搭建以及常见错误

    Mongodb 集群搭建以及常见错误 1 关于Replica Sets +Sharding(主从复制加分片)搭建,不这详细去说,网上有很多,大部分的例子就三台服务器之间做主从复制,分2个shard,架 ...

  2. MongoDB集群搭建-副本集

    MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...

  3. Mongodb集群搭建之 Replica Set

    Mongodb集群搭建之 Replica Set Replica Set 中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了, ...

  4. mongodb集群搭建过程记录

    mongodb集群搭建花费比较长的时间,在此记录下过程,方便以后使用 一 软件环境 系统:ubuntu 18.04,mongodb 社区版4.2 https://docs.mongodb.com/ma ...

  5. mongodb集群搭建(分片+副本)

    原文地址:https://www.cnblogs.com/ityouknow/p/7344005.html 相关概念 先来看一张图: 从图中可以看到有四个组件:mongos.config server ...

  6. mongodb3.6集群搭建:分片+副本集

    mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置 ...

  7. mongodb集群配置分片集群

    测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...

  8. Mongodb集群搭建之 Sharding+ Replica Sets集群架构(2)

    参考http://blog.51cto.com/kaliarch/2047358 一.概述 1.1 背景 为解决mongodb在replica set每个从节点上面的数据库均是对数据库的全量拷贝,从节 ...

  9. Mongodb集群搭建之 Sharding+ Replica Sets集群架构

    1.本例使用1台Linux主机,通过Docker 启动三个容器 IP地址如下: docker run -d -v `pwd`/data/master:/mongodb -p 27017:27017 d ...

随机推荐

  1. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  2. Android:dimen尺寸资源文件的使用

    dimen.xml在values文件夹下面 <resources> <!-- Default screen margins, per the Android Design guide ...

  3. 关于Android中TextView显示多个空格

    一.直接填写文字,输入多少,显示多少,如下: android:text="AAA     AAA"     ————————>显示:AAA     AAA 二.通过设置str ...

  4. Java中多线程的使用!!

    简介:       1.要了解多线程,首先我们得先了解进程和线程.那么什么是进程?进程就是一个正在运行的程序分配内存让应用程序能够运行的叫做进程.那么什么又是线程呢?线程:在一个程序中,负责代码的执行 ...

  5. GDB源代码查找路径

    在gdb程序的时候,有时候会发现源代码文件找不到,对于那些带调试信息的系统库或者第三方库,很多时候当你真正想gdb去追他源代码的时候你会发现gdb根本找不到这些源代码路径.这个时候有两种选择: [1] ...

  6. 【原创】Android 对话框的使用

    对话框即Dialog .google的官方解释:A dialog is usually a small window that appears in front of the current Acti ...

  7. [国嵌攻略][066][ARP协议实现]

    以太网通讯 在计算机网络中,数据发送的过程就是把数据按照各层协议层层封装的过程.在这个过程中,最终要使用的协议通常是以太网协议(数据链路层协议). 以太网包格式 目的MAC地址:接收者的物理地址(6字 ...

  8. Linux环境设置IP及关闭防火墙

    确认当前网络配置: [root@localhost ~]# nmcli -p dev ===================== Status of devices ================= ...

  9. Kafka(一)-- 初体验

    一.概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些 ...

  10. Java按值传递、按引用传递

    一般我们会说Java基本类型采用值传递,对象以及数组采用引用传递.但事实上这只是表面上的现象.实质上,Java都是按值传递引用.(Java中“引用”的概念相当于C++中的指针,可以不断改变值) 一,对 ...