7.4-文檔型數(shù)據(jù)庫-2_第1頁
7.4-文檔型數(shù)據(jù)庫-2_第2頁
7.4-文檔型數(shù)據(jù)庫-2_第3頁
7.4-文檔型數(shù)據(jù)庫-2_第4頁
7.4-文檔型數(shù)據(jù)庫-2_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

7.4文檔型數(shù)據(jù)庫MongoDB數(shù)據(jù)庫的組成MongoDB的集群架構(gòu)【本節(jié)學(xué)習(xí)目標(biāo)】一、文檔數(shù)據(jù)庫的組成面向集合且模式自由的文檔型數(shù)據(jù)庫。面向集合--數(shù)據(jù)被分組為集合(文檔);數(shù)據(jù)模式自由;存儲的數(shù)據(jù)是鍵值對的集合,鍵是字符串,值是任意類型,包括數(shù)組和文檔。文檔是MongoDB中數(shù)據(jù)的基本單元,集合可以被看作沒有模式的表,MongoDB每個實例都可容納多個獨(dú)立數(shù)據(jù)庫,每個數(shù)據(jù)庫都有自己的集合和權(quán)限(數(shù)據(jù)庫)。文檔(Document)---文檔組集合:Collection--多個集合:數(shù)據(jù)庫(database)。一個實例支持多個數(shù)據(jù)庫(database)1數(shù)據(jù)庫對應(yīng)的文件信息默認(rèn)數(shù)據(jù)目錄是/daba/db,存儲所有的數(shù)據(jù)文件,每個數(shù)據(jù)庫都包含一個.ns文件和一些數(shù)據(jù)文件,例如test數(shù)據(jù)庫,數(shù)據(jù)庫的文件就會由test.ns、test.0、test.1、test.2等組成。預(yù)分配空間的機(jī)制,用0進(jìn)行填充。每新分配一次,它的大小都會是上一個數(shù)據(jù)文件大小的2倍,每個數(shù)據(jù)文件最大2G。數(shù)據(jù)庫的每張表都對應(yīng)一個命名空間,每個索引也有對應(yīng)的命名空間,這些命名空間的元數(shù)據(jù)集中在*.ns文件中。例子–數(shù)據(jù)庫的相關(guān)文件test數(shù)據(jù)庫包含3個文件用于存儲表和索引數(shù)據(jù),test.2預(yù)分配的空文件,test.0和test.1分到相應(yīng)的盤區(qū)對應(yīng)不同的名字空間。每個命名空間可以包含多個不同的盤區(qū),不是連續(xù)的,命名空間對應(yīng)的盤區(qū)隨著分配的次數(shù)不斷增長的。不用釋放回收空閑的磁盤空間。

mongodb的數(shù)據(jù)將會保存在底層文件系統(tǒng)中,dbpath設(shè)定為“/data/db”目錄,創(chuàng)建一個database為“test”,collection為“sample”,然后在此collection中插入數(shù)條documents。我們查看dbpath下生成的文件列表:例子–數(shù)據(jù)庫的相關(guān)文件test已經(jīng)有6個數(shù)據(jù)文件(datafiles),每個文件以“database”的名字+序列數(shù)字組成,序列號從0開始,逐個遞增,數(shù)據(jù)文件從16M開始,每次擴(kuò)張一倍(16M、32M、64M、128M...)>ls-lh-rw-------1mongomongo16M11617:24test.0-rw-------1mongomongo32M11617:24test.1-rw-------1mongomongo64M11617:24test.2-rw-------1mongomongo128M11617:24test.3-rw-------1mongomongo256M11617:24test.4-rw-------1mongomongo512M11617:24test.5-rw-------1mongomongo512M11617:24test.6-rw-------1mongomongo16M11617:24test.ns數(shù)據(jù)庫存儲--collection數(shù)據(jù)庫中所有的collections以及索引信息分散存儲在多個數(shù)據(jù)文件中,數(shù)據(jù)分塊的單位為extent(范圍,區(qū)域),即一個datafile中有多個extents組成,extent中可以保存collection數(shù)據(jù)或者indexes數(shù)據(jù),一個extent只能保存同一個collection數(shù)據(jù),不同的collections數(shù)據(jù)分布在不同的extents中,indexes數(shù)據(jù)也保存在各自的extents中;在每個database的namespace文件中,每個collection只保存了第一個extent的位置信息,每個extent都維護(hù)者一個鏈表關(guān)系。2Namespace文件對于namespace文件,比如“test.ns”文件,默認(rèn)大小為16M,此文件中主要用于保存“collection”、index的命名信息,可保存collection的“屬性”信息、每個索引的屬性類型等通過配置文件“nsSize”選項來指定存儲大量的collection(比如每一小時生成一個collection,在數(shù)據(jù)分析應(yīng)用中)。

3Journal文件journal日志為mongodb提供了數(shù)據(jù)保障能力,用于當(dāng)mongodb異常crash后,重啟時進(jìn)行數(shù)據(jù)恢復(fù);mongodb的數(shù)據(jù)持久寫入磁盤是滯后的。默認(rèn)情況下,“journal”特性是開啟的,一個mongodb實例中所有的databases共享journal文件。二、mongoDB的體系結(jié)構(gòu)–集群分布式集群:數(shù)據(jù)備份--安全性,高讀寫服務(wù)的能力和數(shù)據(jù)存儲能力。通過副本集(replica)對數(shù)據(jù)進(jìn)行備份,通過分片(sharding)對大的數(shù)據(jù)進(jìn)行分割,分布式存儲在不同節(jié)點(diǎn)上。mongodb目前為止支持三種集群模式:主從集群,副本集集群,分片集群。1.集群架構(gòu)單機(jī)實例(mongodinstance):只有一個單機(jī)實例,客戶端與其直接連接使用。副本集(Replicasets):副本集通常由至少3個節(jié)點(diǎn)組成。一個主節(jié)點(diǎn),處理客戶端請求,其余是從節(jié)點(diǎn),復(fù)制主節(jié)點(diǎn)上的數(shù)據(jù)。mongodb各個節(jié)點(diǎn)常見的搭配方式為:一主多從(正常情況下至少3個節(jié)點(diǎn)組成副本集)主節(jié)點(diǎn)記錄在其上的所有操作,從節(jié)點(diǎn)定期輪詢主節(jié)點(diǎn)獲取這些操作,數(shù)據(jù)與一致。選舉機(jī)制:當(dāng)一個節(jié)點(diǎn)掛掉之后需要滿足“大多數(shù)”成員投票2.副本集圖示副本集(Replicasets)3.分片Sharing分片(Sharding):分片是將一個集合的數(shù)據(jù)分別存儲在不同的shard節(jié)點(diǎn)上減輕單機(jī)壓力。根據(jù)ShardKeys來劃分?jǐn)?shù)據(jù),數(shù)據(jù)庫提供了兩種方法:垂直擴(kuò)展和分片。垂直擴(kuò)展:增加CPU、RAM,存儲資源等。分片(水平擴(kuò)展):劃分?jǐn)?shù)據(jù)集,數(shù)據(jù)分布到多臺服務(wù)器中,每個碎片(chard)是獨(dú)立的數(shù)據(jù)庫分片集群有三個組件:Shards碎片,存儲數(shù)據(jù),每個碎片都是一個復(fù)制集。queryrouters:查詢路由或mongos實例。configservers:配置服務(wù)器,存儲集群中的元數(shù)據(jù)。3.分片Sharing圖示:分片集群有三個組件:Shards碎片,存儲數(shù)據(jù),每個碎片都是一個復(fù)制集。queryrouters:查詢路由或mongos實例。configservers:配置服務(wù)器,存儲集群中的元數(shù)據(jù)。

4.集群中的服務(wù)器路由服務(wù)器(mongos):路由服務(wù)器負(fù)責(zé)把對應(yīng)的數(shù)據(jù)請求請求轉(zhuǎn)發(fā)到對應(yīng)的shard服務(wù)器上mongos,數(shù)據(jù)庫集群請求的入口。配置服務(wù)器(mongos):存儲所有數(shù)據(jù)庫元信息(路由、分片)的配置。mongos本身沒有物理存儲分片服務(wù)器和數(shù)據(jù)路由信息,只是緩存在內(nèi)存里,配置服務(wù)器則實際存儲這些數(shù)據(jù)。配置服務(wù)器相當(dāng)與集群大腦,存儲所有數(shù)據(jù)庫元信息(路由、分片)的配置。5.集群說明集群的組成:單機(jī)mongod組成副本集->分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論