久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

139次閱讀
沒有評論

共計 1746 個字符,預計需要花費 5 分鐘才能閱讀完成。

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

本例中 test1 為數據庫,test1 也為集合名

1、先 enable sharding,開啟數據庫的分片功能

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 數量

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

write concern 

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

如下的 write concern 規則設置寫必須在大多數節點上成功,超時時間為 5s。

cfg = rs.conf()

cfg.settings = {}

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

rs.reconfig(cfg)

數據同步

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

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

如下 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 + 計數器,計數器每秒都被重置

h:操作的全局唯一標識

v:oplog 版本信息

op:操作類型

i:插入操作

u:更新操作

d:刪除操作

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

n:空操作,特殊用途

ns:操作針對的集合

o:操作內容,如果是更新操作

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

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

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

將文檔數據寫入對應的集合

更新集合的所有索引信息

寫入一條 oplog 用于同步

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

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

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

誰先寫入?

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

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

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

“怎么對 mongodb 中某個集合做分片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-20發表,共計1746字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 东乌| 开化县| 贺兰县| 称多县| 合川市| 葫芦岛市| 新兴县| 鲁甸县| 安乡县| 平潭县| 肇州县| 太白县| 中牟县| 尚义县| 龙川县| 出国| 合山市| 民乐县| 古丈县| 吴堡县| 江源县| 邵阳县| 镇坪县| 峨边| 二连浩特市| 拉萨市| 惠来县| 夏邑县| 内江市| 永靖县| 普兰店市| 通化市| 高尔夫| 惠水县| 阿克陶县| 江门市| 鸡东县| 龙里县| 滨海县| 巧家县| 锡林郭勒盟|