最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB 主分片(primary shard)相關總結

 更新時間:2021年03月26日 08:43:01   作者:AsiaYe  
這篇文章主要介紹了MongoDB 主分片(primary shard)相關總結。幫助大家更好的理解和學習使用MongoDB,感興趣的朋友可以了解下

01 主分片是什么?

  分片集群中的每一個數據庫都有一個主分片,這個主分片上保存了當前數據庫中沒有被分片的集合的數據,主分片(primary shard)和主節(jié)點(primary)之間沒有任何關聯(lián)。

   主分片是由mongos選擇出來的,選擇的依據是每當創(chuàng)建新數據庫的時候,mongos會從集群中選擇包含數據最少的分片作為新數據庫的主分片。具體的選擇方式是:

選擇listDatabase命令返回的totalSize字段作為選擇的準則。如下:

mongos> db.adminCommand("listDatabases")
{
  "databases" : [
    {
      xxxx
    },
    {
      xxxx
    },
    {
      xxxx
    }
  ],
  "totalSize" : 2842624,
  "totalSizeMb" : 2,
  "ok" : 1,
  "operationTime" : Timestamp(1610982469, 1),
  "$clusterTime" : {
    "clusterTime" : Timestamp(1610982469, 1),
    "signature" : {
      "hash" : BinData(0,"knqdZrxpyGFdSi0gljxCQG4LJ9U="),
      "keyId" : NumberLong("6894922308364795934")
    }
  }
}

   如果我們想手工的選擇某個數據庫的主分片,可以使用movePrimary命令,遷移主分片的過程會耗費一定的時間,在遷移完成之前,不應該對數據庫或者對應的集合進行訪問。遷移過程可能會影響整個集群的操作,所以這個命令一般不要主動去使用,如果必須使用,請務必考慮對網絡負載的影響。

   如果你部署的一個分片集群是由一個副本集修改配置而來的,那么副本集上原來的那些數據庫的主分片將會繼續(xù)留在原來的副本集上,之后創(chuàng)建的數據庫才可以將主分片設置在其他分片上。

02 如何遷移主分片

   下面我們演示如何使用movePrimary命令來遷移數據庫的主分片。

首先,我們來看,當前new數據庫的test集合的主分片在sharding_yeyz這個分片上。它就是new.test的主分片,如下:

mongos> sh.status()
--- Sharding Status --- 
 shards:
  { "_id" : "sharding_yeyz", "host" : "sharding_yeyz/127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020", "state" : 1, "tags" : [ "1_1000" ] }
  { "_id" : "sharding_yeyz1", "host" : "sharding_yeyz1/127.0.0.1:27024,127.0.0.1:27025,127.0.0.1:27026", "state" : 1, "tags" : [ "1000_", "1000_2000" ] }
 
 databases:
   ...
  { "_id" : "new", "primary" : "sharding_yeyz", "partitioned" : true, "version" : { "uuid" : UUID("68c70c64-f732-4478-8851-06dad4b94d6b"), "lastMod" : 1 } }
    new.test
      shard key: { "number" : 1 }
      unique: false
      balancing: true
      chunks:
        sharding_yeyz 3
        sharding_yeyz1 1
      { "number" : { "$minKey" : 1 } } -->> { "number" : 1 } on : sharding_yeyz Timestamp(2, 1) 
      { "number" : 1 } -->> { "number" : 1000 } on : sharding_yeyz Timestamp(1, 2) 
      { "number" : 1000 } -->> { "number" : 2000 } on : sharding_yeyz1 Timestamp(2, 0) 
      { "number" : 2000 } -->> { "number" : { "$maxKey" : 1 } } on : sharding_yeyz Timestamp(1, 5) 
       tag: 1_1000 { "number" : 1 } -->> { "number" : 1000 }
       tag: 1000_2000 { "number" : 1000 } -->> { "number" : 2000 }

接下來我們使用movePrimary命令,使用之前,我們需要知道它的執(zhí)行過程:

1、首先在集群元數據中修改主分片信息

2、然后移動所有的沒有分片的集合到指定的主分片中

**它只能在mongos上執(zhí)行。

命令的用法是:

db.adminCommand( { movePrimary: <databaseName>, to: <newPrimaryShard> } )

舉例:
db.adminCommand( { movePrimary : "new", to : "sharding_yeyz1" } )

我們執(zhí)行完:

db.adminCommand( { movePrimary : "new", to : "sharding_yeyz1" } )

之后,結果如下:

mongos> sh.status()
--- Sharding Status --- 
 shards:
  { "_id" : "sharding_yeyz", "host" : "sharding_yeyz/127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020", "state" : 1, "tags" : [ "1_1000" ] }
  { "_id" : "sharding_yeyz1", "host" : "sharding_yeyz1/127.0.0.1:27024,127.0.0.1:27025,127.0.0.1:27026", "state" : 1, "tags" : [ "1000_", "1000_2000" ] }

 databases:
  { "_id" : "new", "primary" : "sharding_yeyz1", "partitioned" : true, "version" : { "uuid" : UUID("68c70c64-f732-4478-8851-06dad4b94d6b"), "lastMod" : 2 } }
    new.test
      shard key: { "number" : 1 }
      unique: false
      balancing: true
      chunks:
        sharding_yeyz 3
        sharding_yeyz1 1
      { "number" : { "$minKey" : 1 } } -->> { "number" : 1 } on : sharding_yeyz Timestamp(2, 1) 
      { "number" : 1 } -->> { "number" : 1000 } on : sharding_yeyz Timestamp(1, 2) 
      { "number" : 1000 } -->> { "number" : 2000 } on : sharding_yeyz1 Timestamp(2, 0) 
      { "number" : 2000 } -->> { "number" : { "$maxKey" : 1 } } on : sharding_yeyz Timestamp(1, 5) 
       tag: 1_1000 { "number" : 1 } -->> { "number" : 1000 }
       tag: 1000_2000 { "number" : 1000 } -->> { "number" : 2000 }

可以看到,主分片已經遷移完成了。

以上就是MongoDB 主分片(primary shard)相關總結的詳細內容,更多關于MongoDB 主分片(primary shard)的資料請關注腳本之家其它相關文章!

相關文章

  • mongodb中使用distinct去重的簡單方法

    mongodb中使用distinct去重的簡單方法

    怎么在mongodb中實現類似于SQL中distinct的功能,查詢某一個字段所有的值,今天我們就來探討下這個問題。
    2015-05-05
  • 關于MongoDB謹防索引seek的效率問題詳析

    關于MongoDB謹防索引seek的效率問題詳析

    這篇文章主要給大家介紹了關于MongoDB謹防索引seek的效率問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MongoDB具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • MongoDB開啟權限認證的方法步驟詳解

    MongoDB開啟權限認證的方法步驟詳解

    MongoDB已經使用很長一段時間了,基于MongoDB的數據存儲也一直沒有使用到權限訪問(MongoDB默認設置為無權限訪問限制),最近深入學習了下,所以下面這篇文章主要給大家介紹了關于MongoDB開啟權限認證的相關資料,需要的朋友可以參考下。
    2018-02-02
  • MongoDB的復合通配符索引及應用場景

    MongoDB的復合通配符索引及應用場景

    MongoDB的復合通配符索引為處理復雜和多變的數據結構提供了靈活的索引解決方案,通過合理使用復合通配符索引,可以顯著提高查詢效率并減少索引維護成本,本文給大家介紹MongoDB的復合通配符索引,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • MongoDB開發(fā)規(guī)范與數據建模詳解

    MongoDB開發(fā)規(guī)范與數據建模詳解

    在MongoDB中,遵循良好的開發(fā)規(guī)范和數據建模技巧可以提升數據庫性能,簡化數據管理,并減少潛在的錯誤,這篇文章主要介紹了MongoDB開發(fā)規(guī)范與數據建模,需要的朋友可以參考下
    2024-08-08
  • Spark整合Mongodb的方法

    Spark整合Mongodb的方法

    Spark 是一個通用,快速,適用于大規(guī)模數據的處理引擎。接下來通過本文給大家分享Spark整合Mongodb的方法,感興趣的朋友一起看看吧
    2017-11-11
  • Mongodb增加、移除Shard Server實例

    Mongodb增加、移除Shard Server實例

    這篇文章主要介紹了Mongodb增加、移除Shard Server實例,shard服務器(Shard Server).Shard服務器是存儲實際數據的分片,每個Shard可以是一個mongod實例,也可以是一組mongod實例構成的Replica Sets,需要的朋友可以參考下
    2015-01-01
  • centos6.5中安裝mongodb簡明總結

    centos6.5中安裝mongodb簡明總結

    這篇文章主要介紹了centos6.5中安裝mongodb簡明總結,本文簡單的總結了安裝過程中的6個步驟,需要的朋友可以參考下
    2014-10-10
  • SpringBoot系列之MongoDB?Aggregations用法詳解

    SpringBoot系列之MongoDB?Aggregations用法詳解

    MongoDB?中使用聚合(Aggregations)來分析數據并從中獲取有意義的信息,本文重點給大家介紹SpringBoot系列之MongoDB?Aggregations用法,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • MongoDB數據去重與保存最新數據操作指南

    MongoDB數據去重與保存最新數據操作指南

    在 MongoDB 數據庫中,我們經常需要進行數據去重并保留最新的數據,本文將介紹如何使用 MongoDB 聚合操作完成這一任務,并將結果保存到新的集合或者覆蓋原有的集合,感興趣的小伙伴跟著小編一起來看看吧
    2024-01-01

最新評論

通渭县| 益阳市| 鸡泽县| 莱阳市| 新和县| 河东区| 东光县| 华池县| 瓮安县| 荔浦县| 枣阳市| 张北县| 霍城县| 工布江达县| 和林格尔县| 揭东县| 绍兴市| 延安市| 茌平县| 双柏县| 衡南县| 报价| 清远市| 阿尔山市| 新乐市| 东乡县| 太原市| 唐河县| 沧源| 德清县| 封开县| 金平| 甘南县| 丰都县| 镇坪县| 固原市| 丰县| 东乡县| 云梦县| 仪陇县| 柯坪县|