①配置服务器

在大型的集群中,建议配置3台配置服务器,就足够用了。启动配置服务器的方式:

1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建confdb文件夹,然后在confdb下面创建confdb1,confdb2,confdb3文件夹;同理在前面的logs下面创建conflogs文件夹

2:然后分别启动这三个配置服务器,使用--configsvr指明是配置服务器,如下:

./mongod --configsvr --dbpath ../dbs/confdb/confdb1 --logpath ../logs/conflog/conflog1 --fork --port 30001

./mongod --configsvr --dbpath ../dbs/confdb/confdb2 --logpath ../logs/conflog/conflog2 --fork --port 30002

./mongod --configsvr --dbpath ../dbs/confdb/confdb3 --logpath ../logs/conflog/conflog3 --fork --port 30003

3:--configsvr默认的端口为27019,默认的数据目录为/data/configdb,可以使用--dbpath和--port自己定义。

4:注意不要使用--replSet选项,配置服务器不是副本集成员。Mongos会向所有的3台配置服务器发送写请求,并确保3台服务器拥有相同的数据。

②启动mongos进程

1:./mongos --configdb localhost:30001,localhost:30002,localhost:30003 --logpath ../logs/conflog/mongoslog --fork

2:可以启动任意多个mongos,通常是一个应用服务器使用一个mongos,也就是说mongos通常与应用服务器运行在一个机器上

3:mongos的默认端口是27017,可以用chunkSize来指定块的大小,默认是200M

③将副本集转换成为分片

1:如果没有副本集,按照前面讲的创建并初始化一个;如果有一个副本集,就打开相应的服务器,把副本集运行起来

2:./mongo localhost:27017

use admin

3:然后连接到mongos,把副本集转换成为分片,示例如下:

sh.addShard("myrepl/127.0.0.1:20001,127.0.0.1:20002");

不用把所有副本集的成员都写出来,mongos会自动检查整个副本集。副本集的名称myrepl就用作了分片的名称。

4:使用sh.status()查看状态,会发现整个副本集里面的服务都加入进来了。

5:注意:添加分片过后,客户端应该连接mongos进行操作,而不是连接副本集了。

6:也可以创建单mongod服务器的分片,但不建议在生产环境中使用

7:至此一个分片就创建好了,然后可以重复步骤,创建一个新的副本集,加入到分片中来

④数据分片

需要明确指定分片的数据库和集合,MongoDB才会对数据进行自动分片。

1:对数据库启用分片

use admin

sh.enableSharding("sd1");   --数据库名

2:然后指定分片的集合,还有分片的键,如果对已经存在的集合进行分片,那么指定的这个分片键上必须有索引;如果集合不存在,mongos会自动在分片键上创建索引。例如:

sh.shardCollection("sd1.users",{"userId":1});--{"userId":1}分片键

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

第42章:MongoDB-集群--Sharding(分片)--单机的搭建的更多相关文章

  1. 第41章:MongoDB-集群--Sharding(分片)

    ①Sharding分片概念 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载. 分片是每个分 ...

  2. Mongodb集群与分片 1

    分片集群   Mongodb中数据分片叫做chunk,它是一个Collection中的一个连续的数据记录,但是它有一个大小限制,不可以超过200M,如果超出产生新的分片.   下面是一个简单的分片集群 ...

  3. mongodb 集群部署--分片服务器搭建

    部署分片服务器 1.分片 为了突破单点数据库服务器的I/O能力限制,对数据库存储进行水平扩展,严格地说,每一个服务器或者实例或者复制集就是一个分片. 2.优势 提供类似现行增·长架构 提高数据可用性 ...

  4. MongoDB集群之分片

    原文:点击打开链接 MongoDB分片 分片(sharding)是将数据拆分,将其分散在不同的机器上的过程.MongoDB支持自动分片 片键(shard key)设置分片时,需要从集合里面选一个键,用 ...

  5. mongodb集群配置分片集群

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

  6. Mongodb集群与分片 2

    前面我们介绍了简单的集群配置实例.在简单实例中,虽然MongoDB auto-Sharding解决了海量存储问题,和动态扩容问题,但是离我们在真实环境下面所需要的高可靠性和高可用性还有一定的距离. 下 ...

  7. MongoDB集群之分片技术应用 —— 学习笔记

    课程链接:https://www.imooc.com/learn/501 一.什么是分片? 分片:将数据进行2拆分,将数据水平的分散到不同的服务器上. 二.为什么要分片? 架构上:读写均衡.去中心化 ...

  8. 第43章:MongoDB-集群--Sharding(分片)--多机的搭建

    ①环境准备 服务器规划 服务器[192.168.0.75] 服务器[192.168.0.84] 服务器[192.168.0.86] mongos mongos mongos config server ...

  9. ubuntu docker 下mongodb集群和分片

    首先我们计划启动了三个mongo服务:master,salve,arbiter 1.准备工作 新建文件夹如图(每个文件夹下面有db和configdb文件夹): 生成认证文件并修改权限 openssl ...

随机推荐

  1. 使用Mechanize实现自动化表单处理

    使用Mechanize实现自动化表单处理   mechanize是对urllib2的部分功能的替换,能够更好的模拟浏览器行为,在web访问控制方面做得更全面 mechanize的特点: 1 http, ...

  2. 用java打印图形

    代码如下 public static void main(String[] args) { for (int i = 0; i <7; i++) { for (int j = 0; j < ...

  3. 权限管理demo-获取Spring上下文工具

    package com.mmall.common; import org.springframework.beans.BeansException; import org.springframewor ...

  4. Laravel常见问题集锦

    1.提示:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes? ...

  5. [Linux] traceroute 路由跟踪指令用例

    traceroute是用来跟踪数据包到达网络主机所经过的路由工具.在Linux系统中,称之为traceroute,在Windows中称为tracert. 一条路径上的每个设备traceroute要测3 ...

  6. __getattr__ __delattr__ __setattr__ __getattribute__使用(重写python提供的错误信息)

    自己定义了这些attr 查找删除设置就会触发自己定义的逻辑,如果不重新,pyton会提供自己报错信息class Room: def __init__(self,name): self.name = n ...

  7. 2D射影空间,为何引入射影空间

    2D欧氏空间R2中,点的表示是A(x1,y1), B(x2,y2),二维参数,线的表示是L: y=kx+b,是二维参数: 如何表示点在线上面?可以扩展为(k,-1,b)* (x1,y1,1)t = 0 ...

  8. Object.create() vs new SomeFunction() in javascript

    Object.create builds an object that inherits directly from the one passed as its first argument. Wit ...

  9. Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)

    从某些网站看小说的时候经常出现垃圾广告,一气之下写个爬虫,把小说链接抓取下来保存到txt,用requests_html全部搞定,代码简单,容易上手. 中间遇到最大的问题就是编码问题,第一抓取下来的小说 ...

  10. asp.net文件/大文件上传需要配置的项目整理

    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 最可能的原因: •Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值. 可尝 ...