mongoDB分片集群常用指令

来源:互联网 发布:淘宝网1 编辑:程序博客网 时间:2024/06/02 02:13


1.帮助指令:sh.help(),查看有哪些指令及其含义和使用方法。

mongos> sh.help()sh.addShard( host )                       server:port OR setname/server:portsh.enableSharding(dbname)                 enables sharding on the database dbnamesh.shardCollection(fullName,key,unique)   shards the collectionsh.splitFind(fullName,find)               splits the chunk that find is in at the mediansh.splitAt(fullName,middle)               splits the chunk that middle is in at middlesh.moveChunk(fullName,find,to)            move the chunk where 'find' is to 'to' (name of shard)sh.setBalancerState( <bool on or not> )   turns the balancer on or off true=on, false=offsh.getBalancerState()                     return true if enabledsh.isBalancerRunning()                    return true if the balancer has work in progress on any mongossh.disableBalancing(coll)                 disable balancing on one collectionsh.enableBalancing(coll)                  re-enable balancing on one collectionsh.addShardTag(shard,tag)                 adds the tag to the shardsh.removeShardTag(shard,tag)              removes the tag from the shardsh.addTagRange(fullName,min,max,tag)      tags the specified range of the given collectionsh.removeTagRange(fullName,min,max,tag)   removes the tagged range of the given collectionsh.status()                               prints a general overview of the cluster

或者直接运行help查看系统指令:

mongos> helpdb.help()                    help on db methodsdb.mycoll.help()             help on collection methodssh.help()                    sharding helpersrs.help()                    replica set helpershelp admin                   administrative helphelp connect                 connecting to a db helphelp keys                    key shortcutshelp misc                    misc things to knowhelp mr                      mapreduceshow dbs                     show database namesshow collections             show collections in current databaseshow users                   show users in current databaseshow profile                 show most recent system.profile entries with time >= 1msshow logs                    show the accessible logger namesshow log [name]              prints out the last segment of log in memory, 'global' is defaultuse <db_name>                set current databasedb.foo.find()                list objects in collection foodb.foo.find( { a : 1 } )     list objects in foo where a == 1it                           result of the last line evaluated; use to further iterateDBQuery.shellBatchSize = x   set default number of items to display on shellexit                         quit the mongo shell


2.sh.status() :查看分片的状态信息:

mongos> sh.status()--- Sharding Status ---   sharding version: {    "_id" : 1,    "minCompatibleVersion" : 5,    "currentVersion" : 6,    "clusterId" : ObjectId("55cd8969e940b6d9c82cd178")}  shards:    {  "_id" : "shard0000",  "host" : "219.219.220.180:27017" }    {  "_id" : "shard0001",  "host" : "219.219.220.248:27017" }    {  "_id" : "shard0002",  "host" : "219.219.220.131:27017" }  balancer:    Currently enabled:  yes    Currently running:  no    Failed balancer rounds in last 5 attempts:  0    Migration Results for the last 24 hours:         No recent migrations  databases:    {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }    {  "_id" : "xubo",  "partitioned" : true,  "primary" : "shard0002" }        xubo.resume_meta_data            shard key: { "_id" : "hashed" }            chunks:                shard0000    2                shard0001    2                shard0002    2            { "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong("-6148914691236517204") } on : shard0002 Timestamp(3, 2)             { "_id" : NumberLong("-6148914691236517204") } -->> { "_id" : NumberLong("-3074457345618258602") } on : shard0002 Timestamp(3, 3)             { "_id" : NumberLong("-3074457345618258602") } -->> { "_id" : NumberLong(0) } on : shard0000 Timestamp(3, 4)             { "_id" : NumberLong(0) } -->> { "_id" : NumberLong("3074457345618258602") } on : shard0000 Timestamp(3, 5)             { "_id" : NumberLong("3074457345618258602") } -->> { "_id" : NumberLong("6148914691236517204") } on : shard0001 Timestamp(3, 6)             { "_id" : NumberLong("6148914691236517204") } -->> { "_id" : { "$maxKey" : 1 } } on : shard0001 Timestamp(3, 7)     {  "_id" : "test",  "partitioned" : false,  "primary" : "shard0002" }    {  "_id" : "ustc",  "partitioned" : false,  "primary" : "shard0000" }    {  "_id" : "test2",  "partitioned" : false,  "primary" : "shard0001" }    {  "_id" : "test1",  "partitioned" : false,  "primary" : "shard0001" }    {  "_id" : "testdb",  "partitioned" : false,  "primary" : "shard0001" }
显示有shard0000,shard0001,shard0002三个分片。admin,xubo等五个数据库,_id后面为数据库名;partitioned表示是否分区,true为是;primary表示数据库的主分区,所有的数据都会位于主分区上,MongoDB目前还不能主动将数据分发到不同的分片上,因为它不知道你希望如何分发数据(参考【1】,P236)。自己测试了插入333821557个文档,大小大概为58G,经查询所有数据都在主分区,其他分区基本没有数据。


3.db.stats(): 查看数据库信息,辅助分片数据库信息查询。

switched to db xubomongos> db.stats(){"raw" : {"ip_node1:27017" : {"db" : "xubo","collections" : 3,"objects" : 8,"avgObjSize" : 88,"dataSize" : 704,"storageSize" : 20480,"numExtents" : 3,"indexes" : 3,"indexSize" : 24528,"fileSize" : 67108864,"nsSizeMB" : 16,"extentFreeList" : {"num" : 0,"totalSize" : 0},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1},"ip_node2:27017" : {"db" : "xubo","collections" : 3,"objects" : 8,"avgObjSize" : 88,"dataSize" : 704,"storageSize" : 20480,"numExtents" : 3,"indexes" : 3,"indexSize" : 24528,"fileSize" : 67108864,"nsSizeMB" : 16,"extentFreeList" : {"num" : 0,"totalSize" : 0},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1},"ip_node3:27017" : {"db" : "xubo","collections" : 4,"objects" : 333821541,"avgObjSize" : 111.99999904140398,"dataSize" : 37388012272,"storageSize" : 43648786160,"numExtents" : 44,"indexes" : 4,"indexSize" : 10831008832,"fileSize" : 57887686656,"nsSizeMB" : 16,"extentFreeList" : {"num" : 0,"totalSize" : 0},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1}},"objects" : 333821557,"avgObjSize" : 110.99999889761463,"dataSize" : 37388013680,"storageSize" : 43648827120,"numExtents" : 50,"indexes" : 10,"indexSize" : 10831057888,"fileSize" : 58021904384,"extentFreeList" : {"num" : 0,"totalSize" : 0},"ok" : 1}

ip_node1-3是具体的ip地址,这个因设置而不同。上面现实了xubo数据库三个不同分片上的信息,数据基本都在主分区。"objects" : 333821541,

4.数据库分区:

mongos> sh.enableSharding("testdb"){ "ok" : 1 }

通过sh.status()查看显示testdb已经分片:

{  "_id" : "testdb",  "partitioned" : true,  "primary" : "shard0001" }


5.对表建立索引db.table2.ensureIndex({"id":1})

mongos> db.table2.ensureIndex({"id":1}){"raw" : {"ip_node1:27017" : {"createdCollectionAutomatically" : true,"numIndexesBefore" : 1,"numIndexesAfter" : 2,"ok" : 1}},"ok" : 1}

6.对表建立分片:sh.shardCollection("testdb.table2",{"id":1})

mongos> sh.shardCollection("testdb.table2",{"id":1}){ "collectionsharded" : "testdb.table2", "ok" : 1 }

查看分片情况:

{  "_id" : "testdb",  "partitioned" : true,  "primary" : "shard0001" }testdb.table1shard key: { "id" : 1 }chunks:shard00001shard00011shard00021{ "id" : { "$minKey" : 1 } } -->> { "id" : 1 } on : shard0000 Timestamp(2, 0) { "id" : 1 } -->> { "id" : 9 } on : shard0002 Timestamp(3, 0) { "id" : 9 } -->> { "id" : { "$maxKey" : 1 } } on : shard0001 Timestamp(3, 1) testdb.table2shard key: { "id" : 1 }chunks:shard00011{ "id" : { "$minKey" : 1 } } -->> { "id" : { "$maxKey" : 1 } } on : shard0001 Timestamp(1, 0) testdb.usersshard key: { "username" : 1 }chunks:shard00001shard00011shard00021{ "username" : { "$minKey" : 1 } } -->> { "username" : 2 } on : shard0000 Timestamp(2, 0) { "username" : 2 } -->> { "username" : 10 } on : shard0002 Timestamp(3, 0) { "username" : 10 } -->> { "username" : { "$maxKey" : 1 } } on : shard0001 Timestamp(3, 1) 

显示已经分片


7.查看某个表的状态信息:db.table2.stats()

mongos> db.table2.stats(){"sharded" : true,"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.","userFlags" : 1,"capped" : false,"ns" : "testdb.table2","count" : 111111,"numExtents" : 9,"size" : 12444432,"storageSize" : 22523904,"totalIndexSize" : 7064064,"indexSizes" : {"_id_" : 3638320,"id_1" : 3425744},"avgObjSize" : 112,"nindexes" : 2,"nchunks" : 3,"shards" : {"shard0000" : {"ns" : "testdb.table2","count" : 0,"size" : 0,"numExtents" : 1,"storageSize" : 8192,"lastExtentSize" : 8192,"paddingFactor" : 1,"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.","userFlags" : 1,"capped" : false,"nindexes" : 2,"totalIndexSize" : 16352,"indexSizes" : {"_id_" : 8176,"id_1" : 8176},"ok" : 1},"shard0001" : {"ns" : "testdb.table2","count" : 111070,"size" : 12439840,"avgObjSize" : 112,"numExtents" : 7,"storageSize" : 22507520,"lastExtentSize" : 11325440,"paddingFactor" : 1,"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.","userFlags" : 1,"capped" : false,"nindexes" : 2,"totalIndexSize" : 7031360,"indexSizes" : {"_id_" : 3621968,"id_1" : 3409392},"ok" : 1},"shard0002" : {"ns" : "testdb.table2","count" : 41,"size" : 4592,"avgObjSize" : 112,"numExtents" : 1,"storageSize" : 8192,"lastExtentSize" : 8192,"paddingFactor" : 1,"paddingFactorNote" : "paddingFactor is unused and unmaintained in 3.0. It remains hard coded to 1.0 for compatibility only.","userFlags" : 1,"capped" : false,"nindexes" : 2,"totalIndexSize" : 16352,"indexSizes" : {"_id_" : 8176,"id_1" : 8176},"ok" : 1}},"ok" : 1}

8.查看块大小:

mongos> use configswitched to db configmongos> db.settings.find(){ "_id" : "chunksize", "value" : 100 }

查看有哪些块:

mongos> use configswitched to db configmongos> db.chunks.find(){ "_id" : "xubo.resume_meta_data-_id_MinKey", "lastmod" : Timestamp(3, 2), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : { "$minKey" : 1 } }, "max" : { "_id" : NumberLong("-6148914691236517204") }, "shard" : "shard0002" }{ "_id" : "xubo.resume_meta_data-_id_-3074457345618258602", "lastmod" : Timestamp(3, 4), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : NumberLong("-3074457345618258602") }, "max" : { "_id" : NumberLong(0) }, "shard" : "shard0000" }{ "_id" : "xubo.resume_meta_data-_id_3074457345618258602", "lastmod" : Timestamp(3, 6), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : NumberLong("3074457345618258602") }, "max" : { "_id" : NumberLong("6148914691236517204") }, "shard" : "shard0001" }{ "_id" : "xubo.resume_meta_data-_id_-6148914691236517204", "lastmod" : Timestamp(3, 3), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : NumberLong("-6148914691236517204") }, "max" : { "_id" : NumberLong("-3074457345618258602") }, "shard" : "shard0002" }{ "_id" : "xubo.resume_meta_data-_id_0", "lastmod" : Timestamp(3, 5), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : NumberLong(0) }, "max" : { "_id" : NumberLong("3074457345618258602") }, "shard" : "shard0000" }{ "_id" : "xubo.resume_meta_data-_id_6148914691236517204", "lastmod" : Timestamp(3, 7), "lastmodEpoch" : ObjectId("55cd8aa4e940b6d9c82cd1bf"), "ns" : "xubo.resume_meta_data", "min" : { "_id" : NumberLong("6148914691236517204") }, "max" : { "_id" : { "$maxKey" : 1 } }, "shard" : "shard0001" }{ "_id" : "testdb.users-username_MinKey", "lastmod" : Timestamp(2, 0), "lastmodEpoch" : ObjectId("55d444f3a2c399eae2842423"), "ns" : "testdb.users", "min" : { "username" : { "$minKey" : 1 } }, "max" : { "username" : 2 }, "shard" : "shard0000" }{ "_id" : "testdb.users-username_2.0", "lastmod" : Timestamp(3, 0), "lastmodEpoch" : ObjectId("55d444f3a2c399eae2842423"), "ns" : "testdb.users", "min" : { "username" : 2 }, "max" : { "username" : 10 }, "shard" : "shard0002" }{ "_id" : "testdb.users-username_10.0", "lastmod" : Timestamp(3, 1), "lastmodEpoch" : ObjectId("55d444f3a2c399eae2842423"), "ns" : "testdb.users", "min" : { "username" : 10 }, "max" : { "username" : { "$maxKey" : 1 } }, "shard" : "shard0001" }{ "_id" : "testdb.table1-id_MinKey", "lastmod" : Timestamp(2, 0), "lastmodEpoch" : ObjectId("55d44875a2c399eae28424da"), "ns" : "testdb.table1", "min" : { "id" : { "$minKey" : 1 } }, "max" : { "id" : 1 }, "shard" : "shard0000" }










0 0