Chinaunix首页 | 论坛 | 博客
  • 博客访问: 34634
  • 博文数量: 8
  • 博客积分: 46
  • 博客等级: 民兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-06 14:26
个人简介

干过研发,弄过运维,现在专职DBA。 玩过MYSQL,看过MARIADB,目前在搞MongoDB.

文章分类

全部博文(8)

文章存档

2013年(8)

我的朋友

分类: NOSQL

2013-04-28 22:35:41

知识点:mongoDB Sharding 是数据自动分片。数据自动在不同的数据服务器中迁移。迁移触发条件有数据量大小与访问流量。

1. 建立分片集群分为两个部分:一是启动相应的mongoDB服务,二是决定怎么切分数据。

2. 一个能够提供服务的分片集群主要由三部分构成:

  (一)配置服务器:就是一个一般的mongoDB服务进程。它负责存储集群的数据与片的对应关系。配置信息落地。

  (二)路由服务器:路由请求与转发结果集。路由服务器知道对应的数据存储在什么位置。它缓存配置服务器的信息但不落地,从配置服务器同步数据。

  (三)数据服务器:真正存储数据的服务进程。它是一般的mongoDB服务进程。

3. 建立分片集群

  1. 首先启动配置服务进程。因为路由服务器需要从配置服务器同步数据,因此要早路由服务进程启动。

   mongod --dbpath /exports/dbs/config --port 20000

  2. 启动路由服务器,指定对应的配置服务器位置。路由服务进程并不需要指定数据文件目录,它并不存储数据,只是缓存配置服务进程的数据。

   mongos --port 30000 --configdb localhost:20000

  3. 启动数据服务器,这个才是真正存储数据的mongodb进程。(刚开始先使用一个,之后再添加)

   mongod --dbpath /exports/dbs/shard1 --port 27017

  4. 连接路由服务器开启分片。并且需要指定到某个库的某个集合。

   mongo localhost:30000/admin

   db.runCommand({addshard:"localhost:27017",allowLocal:true});

  5. 连接路由服务器,指定需要分片的某个库中的某个集合。并指定分片的健。

   db.runCommand({enablesharding:"foo"});

   db.runCommand({shardcollection:"foo.bar",key:{_id:1}});

阅读(951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~