zoukankan      html  css  js  c++  java
  • mongoDB 分片集群常用指令

    1.帮助指令:sh.help(),查看有哪些指令及其含义和使用方法。
    mongos> sh.help()
     sh.addShard( host )                       server:port OR setname/server:port
     sh.enableSharding(dbname)                 enables sharding on the database dbname
     sh.shardCollection(fullName,key,unique)   shards the collection
     sh.splitFind(fullName,find)               splits the chunk that find is in at the median
     sh.splitAt(fullName,middle)               splits the chunk that middle is in at middle
     sh.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=off
     sh.getBalancerState()                     return true if enabled
     sh.isBalancerRunning()                    return true if the balancer has work in progress on any mongos
     sh.disableBalancing(db.coll)                 disable balancing on one collection
     sh.enableBalancing(db.coll)                  re-enable balancing on one collection
     sh.addShardTag(shard,tag)                 adds the tag to the shard
     sh.removeShardTag(shard,tag)              removes the tag from the shard
     sh.addTagRange(fullName,min,max,tag)      tags the specified range of the given collection
     sh.removeTagRange(fullName,min,max,tag)   removes the tagged range of the given collection
     sh.status()                               prints a general overview of the cluster
    或者直接运行help查看系统指令:

    mongos> help
     db.help()                    help on db methods
     db.mycoll.help()             help on collection methods
     sh.help()                    sharding helpers
     rs.help()                    replica set helpers
     help admin                   administrative help
     help connect                 connecting to a db help
     help keys                    key shortcuts
     help misc                    misc things to know
     help mr                      mapreduce
     show dbs                     show database names
     show collections             show collections in current database
     show users                   show users in current database
     show profile                 show most recent system.profile entries with time >= 1ms
     show logs                    show the accessible logger names
     show log [name]              prints out the last segment of log in memory, 'global' is default
     use <db_name>                set current database
     db.foo.find()                list objects in collection foo
     db.foo.find( { a : 1 } )     list objects in foo where a == 1
     it                           result of the last line evaluated; use to further iterate
     DBQuery.shellBatchSize = x   set default number of items to display on shell
     exit                         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 xubo
    mongos> 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.table1
       shard key: { "id" : 1 }
       chunks:
        shard0000 1
        shard0001 1
        shard0002 1
       { "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.table2
       shard key: { "id" : 1 }
       chunks:
        shard0001 1
       { "id" : { "$minKey" : 1 } } -->> { "id" : { "$maxKey" : 1 } } on : shard0001 Timestamp(1, 0)
      testdb.users
       shard key: { "username" : 1 }
       chunks:
        shard0000 1
        shard0001 1
        shard0002 1
       { "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 config
    switched to db config

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

    查看有哪些块:
    mongos> use config
    switched to db config
    mongos> 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", "lastm
    ————————————————
    版权声明:本文为CSDN博主「KeepLearningBigData」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xubo245/article/details/47782557
  • 相关阅读:
    HTML5 drag拖动事件
    echarts 实现立体柱子图
    团队管理(七)
    echarts环比图实现
    父组件调用图表组件根据按钮切换展示数据
    echarts 折柱图绘制图表标注
    团队管理(六)
    团队管理(五)
    css 绘制圆角三角形
    团队管理(四)
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/12377006.html
Copyright © 2011-2022 走看看