热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

创建必要的文件目录

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>

本文完


推荐阅读
author-avatar
俏君woo_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有