• 【MongoDB】在windows平台mongodb切片集群(三)


    在过去的两年我们博客详细阐述了零碎工作集群和打造过程。在这篇博客中,我们主要分析测试结果一起支离破碎集群。

    首先来看看碎片集群的每个状态。你可以看出来复制集AB都是正常的:

    一、开启分片集合

    开启一个数据库上的分片。这是对不论什么集合进行分片的先决条件。 如果測试数据库为slidetest. 

     

    分片集合定义注意:它看起来和索引定义有几分相似之处,尤其是有那个unique键。

    在对一个空集合进行分片时候。mongodb会在每一个分片上创建一个与分片相应的索引。

    能够直接连上分片。执行getIndexs()进行验证。能够登陆到3000进行查看。

     

    二、写入分片集群

    一旦完毕集合的分片,分片集群就准备就绪了。如今能够向集群写入数据。数据将分布到各个分片上。

    4000上初始化数据:

    for(var i = 0; i < 200; i++){db.spreadsheets.insert({"filename": "sheet-"+i,"updatedate": new Date(),"username":"albertshao","data":"abcde"*1000 })}

    查看结果:

     

     接下来我们检查整个块发生了什么,能够看到有两块。而且他们的最大值不一样。


    备注:作为BSON类型的边界。$minKey和$maxkey经常使用于比較操作之中。

    $minkey总是小雨全部BSON类型。而$maxKey总是大于全部BSON类型。

    MongoDB使用这两个类型来比較块的端点

    继续插入数据,如果插入20万条记录,

    mongos> sh.status()
    --- Sharding Status ---
      sharding version: {
            "_id" : 1,
            "version" : 4,
            "minCompatibleVersion" : 4,
            "currentVersion" : 5,
            "clusterId" : ObjectId("545d9af5340aec0c2272afda")
    }
      shards:
            {  "_id" : "shard-a",  "host" : "shard-a/WIN--20141018KO:3000,WIN--20141018KO:3001" }
            {  "_id" : "shard-b",  "host" : "shard-b/WIN--20141018KO:30100,WIN--20141018KO:30101" }
      databases:
            {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }
            {  "_id" : "slidetest",  "partitioned" : true,  "primary" : "shard-a" }
                    slidetest.spreadsheets
                            shard key: { "username" : 1, "_id" : 1 }
                            chunks:
                                    shard-b 1
                                    shard-a 2
                            { "username" : { "$minKey" : 1 }, "_id" : { "$minKey" : 1 } } -->> { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") } on : shard-b Timestamp(2, 0)
                            { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") } -->> { "username" : "albertshao", "_id" : ObjectId("545e062437216b1577de1802") } on : shard-a Timestamp(2, 2)
                            { "username" : "albertshao", "_id" : ObjectId("545e062437216b1577de1802") } -->> { "username" : { "$maxKey" : 1 }, "_id" : { "$maxKey" : 1 } } on : shard-a Timestamp(2, 3)
    
    mongos>


    通过上面能够看的出。是利用usename作为块划分键。

    同一时候也能够看的出上面总有3块。当中shard-a有两块,shard-b有一块。

    我们通过changelog能够看到数据库的迁移:

    mongos> db.changelog.count({what:"split"})
    2
    mongos> db.changelog.count({what:"moveChunk.commit"}).count()
    2014-11-08T20:12:09.618+0800 TypeError: Object 1 has no method 'count'
    mongos> db.changelog.find({what:"moveChunk.commit"}).count()
    1
    mongos> db.changelog.find({what:"moveChunk.commit"})
    { "_id" : "WIN--20141018KO-2014-11-08T11:01:40-545df8141603dfc967d0fdcd", "server" : "WIN--20141018KO", "clientAddr" : "127.0.0.1:50644", "time" : ISODate("2014-11-08T11:01:40.826Z"), "what" : "moveChunk.commit", "ns" : "slidetest.spreadsheets", "details" : { "min" : { "username" : { "$minKey" : 1 }, "_id" : { "$minKey" : 1 } }, "max" : { "username" : "albertshao", "_id" : ObjectId("545df80537216b1577de0251") }, "from" : "shard-a", "to" : "shard-b", "cloned" : NumberLong(0), "clonedBytes" : NumberLong(0), "catchup" : NumberLong(0), "steady" : NumberLong(0) } }
    mongos>
    
    
    
    
    





    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    安装CentOS7重启后提示License information
    使用VMware 安装Linux CentOS7
    VS 2015相当不错的功能:C#交互窗口
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
    RabbitMQ service is already present
    RabbitMQ安装后不能运行 Error: unable to connect to node nodedown
    〖Demo〗-- 计算器
    〖Demo〗-- HAproxy配置文件操作
    〖Python〗-- 模块系列(二)
    〖Python〗-- 模块系列(一)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4679357.html
Copyright © 2020-2023  润新知