数据库

 首页 > 数据库 > MongoDB > MongoDB auto-sharding分片配置记录

MongoDB auto-sharding分片配置记录

分享到:
【字体:
导读:
         摘要:mongodbauto-sharding分片优点在于可以存储海量的数据并且可以扩容。支持动态添加或移除sharding,添加shard时,mongo会自动将部分数据转移到新的分片上。移除shard时,mongo会自动将此分片上的数据转移到其它分片上分片包括3种服务器:1.分片服务器:存...

MongoDB auto-sharding分片配置记录
mongodb auto-sharding分片优点在于可以存储海量的数据并且可以扩容。

支持动态添加或移除sharding,添加shard时,mongo会自动将部分数据转移到新的分片上。
移除shard时,mongo会自动将此分片上的数据转移到其它分片上 分片包括3种服务器:
  1.分片服务器:存储实际的分片数据
  2.配置服务器:存储所有shard节点的配置信息、每个chunk的shard key范围、chunk在各shard的分布情况、该集群中所有db和collection的sharding配置信息
  3.路由服务器:询问配置服务器,上哪个分片服务器上进行查询或写入等操作。

#./shard1.conf 配置实例:
    dbpath = d:/mongodb/shard/data/service1
    logpath = d:/mongodb/shard/log/log1.log
    shardsvr = true
    logappend = true
    port = 20001
    rest=true

#./config.conf 配置实例:
    dbpath = d:/mongodb/shard/data/config
    logpath = d:/mongodb/shard/log/config.log
    configsvr = true
    logappend = true
    port = 30001
    rest=true

#./mongos.conf 配置实例
    logpath = d:/mongodb/shard/log/mongos.log
    configdb = localhost:30001
    logappend = true
    port = 40001
    chunkSize = 1            #设置chunk大小。以兆为单位

#配置并启动mongo服务
cmd:>
mongod -f d:/mongodb/shard/shard1.conf
cmd:>
mongod -f d:/mongodb/shard/shard2.conf
cmd:>
mongod -f d:/mongodb/shard/config.conf
cmd:>
mongos -f d:/mongodb/shard/mongos.conf
mongo:>mongo admin --port 40001                                   #连接到mongos的admin库
mongo:>db.runCommand({addshard:"localhost:20001"})                #添加分片服务器
mongo:>db.runCommand({addshard:"localhost:20002"})                #添加分片服务器
mongo:>db.runCommand({enablesharding:"test"})                     #设置要分片的数据库
mongo:>db.runCommand({shardcollection:"test.users",key:{_id:1}})  #设置分片的集合名称,且必须指定shard key.系统自动创建索引
mongo:>for (var i=1;i<=500000;i++) db.users.insert({age:i,name:"test",addr:"shanghai",country:"China"})
mongo:>db.users.stats();                                          #查看表的状态,包括是否分片,分片上数据大小等等。
mongo:>db.runCommand({listshards:1})                              #列出所有的 shard server.
mongo:>printShardingStatus()                                      #查看sharding信息
mongo:>db.runCommand({isdbgrid:1})                                #判断是否是sharding
mongo:>db.runCommand({shardcollection:"test.users2",key:{_id:1}}) #对user2的集合进行分片

#新增|删除shard server
cmd:>
mongod -f d:/mongodb/shard/shard3.conf
mongo:>mongo admin --port 40001                      #连接到mongos的admin库
mongo:>db.runCommand({addshard:"localhost:20003"})   #添加分片服务器
mongo:>db.runCommand({removeshard:"localhost:2003"}) #移除分片服务器
MongoDB auto-sharding分片配置记录
分享到:
MongoDB数据库中配置sharding的方法
MongoDB数据库中配置sharding的方法一、概述 要构建一个 MongoDB Sharding Cluster,需要三种角色: Shard Server 即存储实际数据的分片,每个Shard可以是一个mongod实例,也可以是一组mongod实例构成的Replica Set。为了实现每个Shard内部的auto-failover,MongoDB官方建议每个Shard 为一组Replica Set。 Config Server 为...
MongoDB数据库中配置sharding
MongoDB数据库中配置sharding 这里先介绍sharding的架构和几个基本概念术语。 shard server :shard server可以使一个mongod实例,也可以是replica set。 config sever:为了将指定collection存储在多个shard中,那么就需要个key来进行分割,config server存储各个节点的配置信息。shard key的范围,以及分布情...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……