真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么對mongodb中某個集合做分片

本篇內(nèi)容介紹了“怎么對MongoDB中某個集合做分片”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

專注于為中小企業(yè)提供網(wǎng)站設計、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)大柴旦免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

本例中test1為數(shù)據(jù)庫,test1也為集合名

1、先enable sharding,開啟數(shù)據(jù)庫的分片功能

mongos> use admin

mongos> db.runCommand({"enablesharding":"test1"})

2、對具體collection做分片, 選擇片鍵為"_id"

mongos> db.runCommand({"shardcollection":"test1.test1","key":{"_id":1}})

{ "collectionsharded" : "test1.test1", "ok" : 1 }

3、觀察2個分片 shard_01  shard_02 tunks 數(shù)量

===========MongoDB=====復制集讀寫設置====

write concern 

默認情況下,Primary完成寫操作即返回,Driver可通過設置[Write Concern]來設置寫成功的規(guī)則。

如下的write concern規(guī)則設置寫必須在大多數(shù)節(jié)點上成功,超時時間為5s。

cfg = rs.conf()

cfg.settings = {}

cfg.settings.getLastErrorDefaults = { w: "majority", wtimeout: 5000 }

rs.reconfig(cfg)

數(shù)據(jù)同步

Primary與Secondary之間通過oplog來同步數(shù)據(jù),Primary上的寫操作完成后,會向特殊的local.oplog.rs特殊集合寫入一條oplog,Secondary不斷的從Primary取新的oplog并應用。

因oplog的數(shù)據(jù)會不斷增加,local.oplog.rs被設置成為一個capped集合,當容量達到配置上限時,會將最舊的數(shù)據(jù)刪除掉。另外考慮到oplog在Secondary上可能重復應用,oplog必須具有冪等性,即重復應用也會得到相同的結(jié)果。

如下oplog的格式,包含ts、h、op、ns、o等字段

{

  "ts" : Timestamp(1446011584, 2),

  "h" : NumberLong("1687359108795812092"), 

  "v" : 2, 

  "op" : "i", 

  "ns" : "test.NOSQL", 

  "o" : { "_id" : ObjectId("563062c0b085733f34ab4129"), "name" : "mongodb", "score" : "100" } 

}

}

ts: 操作時間,當前timestamp + 計數(shù)器,計數(shù)器每秒都被重置

h:操作的全局唯一標識

v:oplog版本信息

op:操作類型

i:插入操作

u:更新操作

d:刪除操作

c:執(zhí)行命令(如createDatabase,dropDatabase)

n:空操作,特殊用途

ns:操作針對的集合

o:操作內(nèi)容,如果是更新操作

o2:操作查詢where條件,僅update操作包含該字段

========oplog 與journal日志問題==========張友東博客===========

MongoDB 復制集里寫入一個文檔時,需要修改如下數(shù)據(jù)

將文檔數(shù)據(jù)寫入對應的集合

更新集合的所有索引信息

寫入一條oplog用于同步

上面3個修改操作,需要確保要么都成功,要么都失敗,不能出現(xiàn)部分成功的情況。

MongoDB 在寫入數(shù)據(jù)時,會將上述3個操作放到一個 wiredtiger 的事務里,確?!冈有浴?/p>

wiredtiger 提交事務時,會將所有修改操作應用,并將上述3個操作寫入到一條 journal 操作日志里;后臺會周期性的checkpoint,將修改持久化,并移除無用的journal。

誰先寫入?

oplog 與 journal 是 MongoDB 里不同層次的概念,放在一起比先后本身是不合理的。

oplog 在 MongoDB 里是一個普通的集合,所以 oplog 的寫入與普通集合的寫入并無區(qū)別。

一次寫入,會對應數(shù)據(jù)、索引,oplog的修改,而這3個修改,會對應一條journal操作日志

“怎么對mongodb中某個集合做分片”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


分享題目:怎么對mongodb中某個集合做分片
文章URL:http://weahome.cn/article/goehhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部