数据库

 首页 > 数据库 > MongoDB > MongoDB数据库的集群分片配置方法

MongoDB数据库的集群分片配置方法

分享到:
【字体:
导读:
         摘要:创建必要的文件目录mkdir-p/usr/local/mongo/shard/s0mkdir-p/usr/local/mongo/shard/s1mkdir-p/usr/local/mongo/shard/s2mkdir-p/usr/local/mongo/shard/logmongod--shardsvr--port...

MongoDB数据库的集群分片配置方法

创建必要的文件目录

mkdir -p /usr/local/mongo/shard/s0
mkdir -p /usr/local/mongo/shard/s1
mkdir -p /usr/local/mongo/shard/s2
mkdir -p /usr/local/mongo/shard/log

mongod --shardsvr --port 20000 --dbpath=/usr/local/mongo/shard/s0 --fork --logpath=/usr/local/mongo/shard/log/s0.log --directoryperdb
mongod --shardsvr --port 20001 --dbpath=/usr/local/mongo/shard/s1 --fork --logpath=/usr/local/mongo/shard/log/s1.log --directoryperdb
mongod --shardsvr --port 20002 --dbpath=/usr/local/mongo/shard/s2 --fork --logpath=/usr/local/mongo/shard/log/s2.log --directoryperdb

#Configure Config Server

mkdir -p /usr/local/mongo/shard/config
mongod --configsvr --port 30000 --dbpath=/usr/local/mongo/shard/config --fork --logpath=/usr/local/mongo/shard/log/config.log --directoryperdb

#Start Router Server

mongos --port 40000 --configdb localhost:30000 --fork --logpath=/usr/local/mongo/shard/log/route.log

mongos> db.runCommand({addshard:"localhost:20000"})
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> db.runCommand({addshard:"localhost:20001"})
{ "shardAdded" : "shard0001", "ok" : 1 }
mongos> db.runCommand({enablesharding:"andylhz"})
{ "ok" : 1 }
mongos> db.runCommand({shardcollection:"andylhz.users",key:{_id:1}})
{ "collectionsharded" : "andylhz.users", "ok" : 1 }

插入测试数据

for (var i = 500001; i <= 1000000; i++) db.users.insert({age:i, name:"wangwenlong", addr:"Beijing",country:"China"})

mongos> db.users.stats()db.users.stats()
{
       "sharded" : true,
       "ns" : "andylhz.users",
       "count" : 500000,
       "numExtents" : 16,
       "size" : 48000000,
       "storageSize" : 80949248,
       "totalIndexSize" : 16245712,
       "indexSizes" : {
               "_id_" : 16245712
       },
       "avgObjSize" : 96,
       "nindexes" : 1,
       "nchunks" : 5,
       "shards" : {
               "shard0000" : {
     "ns" : "andylhz.users",
     "count" : 130899,
     "size" : 12566304,
     "avgObjSize" : 96,
     "storageSize" : 22507520,
     "numExtents" : 7,
     "nindexes" : 1,
     "lastExtentSize" : 11325440,
     "paddingFactor" : 1,
     "systemFlags" : 1,
     "userFlags" : 0,
     "totalIndexSize" : 4259696,
     "indexSizes" : {
             "_id_" : 4259696
     },
     "ok" : 1
               },
               "shard0001" : {
     "ns" : "andylhz.users",
     "count" : 369101,
     "size" : 35433696,
     "avgObjSize" : 96,
     "storageSize" : 58441728,
     "numExtents" : 9,
     "nindexes" : 1,
     "lastExtentSize" : 20643840,
     "paddingFactor" : 1,
     "systemFlags" : 1,
     "userFlags" : 0,
     "totalIndexSize" : 11986016,
     "indexSizes" : {
             "_id_" : 11986016
     },
     "ok" : 1
               }
       },
       "ok" : 1
}
mongos>

mongos> use admindb.runCommand({ listshards: 1 })db.runCommand({ listshards: 1 })
{
       "shards" : [
               {
     "_id" : "shard0000",
     "host" : "localhost:20000"
               },
               {
     "_id" : "shard0001",
     "host" : "localhost:20001"
               }
       ],
       "ok" : 1
}

mongos> db.runCommand({ isdbgrid:1 })db.runCommand({ isdbgrid:1 })
{ "isdbgrid" : 1, "hostname" : "mongo.andylhz.com", "ok" : 1 }

mongos> db.runCommand({ addshard:"localhost:20002" })

mongos> printShardingStatus()printShardingStatus()
--- Sharding Status ---
 sharding version: { "_id" : 1, "version" : 3 }
 shards:
       {  "_id" : "shard0000",  "host" : "localhost:20000" }
       {  "_id" : "shard0001",  "host" : "localhost:20001" }
       {  "_id" : "shard0002",  "host" : "localhost:20002" }
 databases:
       {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
       {  "_id" : "andylhz",  "partitioned" : true,  "primary" : "shard0000" }
 andylhz.users chunks:
             shard0002       1
             shard0000       2
             shard0001       2
     { "_id" : { $minKey : 1 } } -->> { "_id" : ObjectId("50b9b64ae2b156c230e8f96e") } on : shard0002 Timestamp(4000, 0)
     { "_id" : ObjectId("50b9b64ae2b156c230e8f96e") } -->> { "_id" : ObjectId("50b9b64be2b156c230e91103") } on : shard0000 Timestamp(4000, 1)
     { "_id" : ObjectId("50b9b64be2b156c230e91103") } -->> { "_id" : ObjectId("50b9b65fe2b156c230ebc1d5") } on : shard0001 Timestamp(3000, 1)
     { "_id" : ObjectId("50b9b65fe2b156c230ebc1d5") } -->> { "_id" : ObjectId("50b9b673e2b156c230eeb2d0") } on : shard0001 Timestamp(2000, 4)
     { "_id" : ObjectId("50b9b673e2b156c230eeb2d0") } -->> { "_id" : { $maxKey : 1 } } on : shard0000 Timestamp(3000, 0)

mongos>

本文完

MongoDB数据库的集群分片配置方法
分享到:
为何MongoDB是最优秀的nosql数据库
为何MongoDB是最优秀的nosql数据库   时至今日,我们已经不可能把NoSQL的发展趋势与10gen公司的MongoDB割裂开来。当然,NoSQL数据库家族可谓百花齐放,Andrew Oliver还在他的经典文章《我到底该用哪种数据库》中进行了系统整理。众所周知,MongoDB与其它同类开源竞争对手Couchbase及Cassandra的具体市场占有率也很难说得...
MongoDB数据库集群安装配置
MongoDB数据库集群安装配置 MongoDB 集群中包含一个自动分片模块 (“mongos”). 自动分片可以用于构建一个大规模的可扩展的数据库集群,这个集群可以并入动态增加的机器。自动建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上。在一个mongodb的集群中包括一些shards(mongod进程),mongos的路由进...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……