mongodb學(xué)習(xí)總結(jié)參考模板范本_第1頁
mongodb學(xué)習(xí)總結(jié)參考模板范本_第2頁
mongodb學(xué)習(xí)總結(jié)參考模板范本_第3頁
mongodb學(xué)習(xí)總結(jié)參考模板范本_第4頁
mongodb學(xué)習(xí)總結(jié)參考模板范本_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、mongodb學(xué)習(xí)總結(jié)mongodb學(xué)習(xí)總結(jié)mongodb學(xué)習(xí)總結(jié)MongoDB學(xué)習(xí)文檔NoSQL簡介1、什么是NoSQL?NoSQL,指的是非關(guān)系型的數(shù)據(jù)庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)的統(tǒng)稱。NoSQL用于超大規(guī)模數(shù)據(jù)的存儲。(例如谷歌或Facebook每天為他們的用戶收集萬億比特的數(shù)據(jù))。這些類型的數(shù)據(jù)存儲不需要固定的模式,無需多余操作就可以橫向擴(kuò)展。2、NoSQL的優(yōu)點/缺點優(yōu)點:高可擴(kuò)展性。分布式計算。低成本。架構(gòu)的靈活性,半結(jié)構(gòu)化數(shù)據(jù)。沒有復(fù)雜的關(guān)系。缺點:沒有標(biāo)準(zhǔn)化。有限的查詢功能(到目前為止)。最終一致是不直觀

2、的程序。3、NoSQL 數(shù)據(jù)庫分類類型部分代表特點列存儲HbaseCassandraHypertable顧名思義,是按列存儲數(shù)據(jù)的。最大的特點是方便存儲結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù),方便做數(shù)據(jù)壓縮,對針對某一列或者某幾列的查詢有非常大的IO優(yōu)勢。文檔存儲MongoDBCouchDB文檔存儲一般用類似json的格式存儲,存儲的內(nèi)容是文檔型的。這樣也就有有機(jī)會對某些字段建立索引,實現(xiàn)關(guān)系數(shù)據(jù)庫的某些功能。key-value存儲Tokyo Cabinet / TyrantBerkeley DBMemcacheDBRedis可以通過key快速查詢到其value。一般來說,存儲不管value的格式,照單全收。(

3、Redis包含了其他功能)圖存儲Neo4JFlockDB圖形關(guān)系的最佳存儲。使用傳統(tǒng)關(guān)系數(shù)據(jù)庫來解決的話性能低下,而且設(shè)計使用不方便。對象存儲db4oVersant通過類似面向?qū)ο笳Z言的語法操作數(shù)據(jù)庫,通過對象的方式存取數(shù)據(jù)。xml數(shù)據(jù)庫Berkeley DB XMLBaseX高效的存儲XML數(shù)據(jù),并支持XML的內(nèi)部查詢語法,比如XQuery,Xpath。MongoDB簡介 1、什么是MongoDB?MongoDB 是由C+語言編寫的開源數(shù)據(jù)庫系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點,可以保證服務(wù)器性能。MongoDB 旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。MongoDB自帶的Ja

4、vaScript Shell,可在shell中使用shell命令行與MongoDB實例交互。Shell是一個功能完備的JavaScript解釋器,可運行任意的JavaScript。2、Mongodb的主要特點:面向集合存儲,易存儲對象類型的數(shù)據(jù)支持動態(tài)查詢支持豐富的類型:支持 dates, regular expressions, code, binary data 等類型。支持索引支持服務(wù)器端javascript執(zhí)行:javaScript是MongoDB的一種通用語言,它可以被用在查詢,聚集函數(shù),直接由數(shù)據(jù)庫執(zhí)行。補(bǔ)充:所謂“面向集合”(Collenction-Orented),意思是數(shù)據(jù)被

5、分組存儲在數(shù)據(jù)集中,被稱為一個集合(Collenction)。每個集合在數(shù)據(jù)庫中都有一個唯一的標(biāo)識名,并且可以包含無限數(shù)目的文檔。集合的概念類似關(guān)系型數(shù)據(jù)庫(RDBMS)里的表(table),不同的是它不需要定義任何模式(schema)。模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結(jié)構(gòu)定義。如果需要的話,你完全可以把不同結(jié)構(gòu)的文件存儲在同一個數(shù)據(jù)庫里。存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標(biāo)識一個文檔,為字符串類型,而值則可以是各中復(fù)雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized dOc

6、ument Format)。MongoDB把數(shù)據(jù)存儲在文件中(默認(rèn)路徑為:/data/db),為提高效率使用內(nèi)存映射文件進(jìn)行管理。MongoDB的主要目標(biāo)是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。3、MongoDB適合用場景:網(wǎng)站數(shù)據(jù):Mongo非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復(fù)制及高度伸縮性。緩存:由于性能很高,Mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可

7、以避免下層的數(shù)據(jù)源過載。大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進(jìn)行存儲。高伸縮性的場景:Mongo非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。Mongo的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。自然,MongoDB的使用也會有一些限制,例如它不適合:高度事務(wù)性的系統(tǒng):例如銀行或會計系統(tǒng)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序。傳統(tǒng)的商業(yè)智能應(yīng)用:針對特定問題的BI數(shù)據(jù)庫會對產(chǎn)生高度優(yōu)化的查

8、詢方式。對于此類應(yīng)用,數(shù)據(jù)倉庫可能是更合適的選擇。需要SQL的問題MongoDB的安裝及配置1、MongoDB的安裝MongoDB的下載:在MongoDB的官網(wǎng)HYPERLINK ,根據(jù)不同的操作系統(tǒng)下載MongoDB的安裝包。備注:32-bit的操作系統(tǒng),MongoDB支持的最大存儲數(shù)據(jù)為2G。64-bit的則無最大數(shù)據(jù)限制。推薦安裝64-bit。下載完后,解壓即可。MongoDB的目錄結(jié)構(gòu)如下圖所示:2、訪問MongoDB數(shù)據(jù)庫MongoDB安裝完成后,要訪問數(shù)據(jù)庫,必須經(jīng)過以下兩步:啟動MongoDB服務(wù)。以管理員身份運行命令提示符,在命令提示符下,找到MongoDB安裝目錄下面的bin

9、目錄,運行 “mongod”則啟動了MongoDB服務(wù)。備注:默認(rèn)保存數(shù)據(jù)庫的DATABASEPATH為MongoDB安裝盤符下面的的datadb路徑,所以,自己必須先創(chuàng)建一個這樣的文件。此命令提示符窗口一旦關(guān)閉,則該服務(wù)也隨之關(guān)閉。訪問MongoDB數(shù)據(jù)。重新打開一個命令提示符窗口,找到安裝目錄下面的bin目錄,運行“mongo”,則默認(rèn)進(jìn)入到test文檔。3、啟動MongoDB時的附加參數(shù) 下表為MongoDB啟動的可附帶的參數(shù)說明:參數(shù)描述-bind_ip綁定服務(wù)IP,若綁定127.0.0.1,則只能本機(jī)訪問,不指定默認(rèn)本地所有IP-logpath定MongoDB日志文件,注意是指定文件

10、不是目錄-logappend使用追加的方式寫日志-dbpath指定數(shù)據(jù)庫路徑-port指定服務(wù)端口號,默認(rèn)端口27017-serviceName指定服務(wù)名稱-serviceDisplayNam指定服務(wù)名稱,有多個mongodb服務(wù)時執(zhí)行。-install指定作為一個Windows服務(wù)安裝。示例 說明:此命令指定了MongoDB的dbpath和logpath。4、將MongoDB添加到windows服務(wù)將MongoDB服務(wù)器作為Windows服務(wù)運行,啟動后,MongoDB服務(wù)直接運行在后臺,避免重復(fù)的開啟關(guān)閉命令。此時請注意,你必須有管理權(quán)限才能運行下面的命令。mongod -bind_ip

11、yourIPadress -logpath C:datadbConfmongodb.log -logappend -dbpath C:datadb -port yourPortNumber -serviceName YourServiceName -serviceDisplayName YourServiceName -install示例:開啟MongoDB服務(wù):關(guān)閉MongoDB服務(wù):刪除MongoDB服務(wù):四、MongoDB中的基本概念1、數(shù)據(jù)庫一個mongodb中可以建立多個數(shù)據(jù)庫。MongoDB的默認(rèn)數(shù)據(jù)庫為db,該數(shù)據(jù)庫存儲在data目錄中。命名規(guī)則:不能是空字符串(“”);數(shù)據(jù)庫名

12、區(qū)分大小寫;數(shù)據(jù)庫名最多為64字節(jié),不能含有/,。,*,|,$,空格,空字符等。數(shù)據(jù)庫最終會變成文件系統(tǒng)里面的文件,數(shù)據(jù)庫名就是相應(yīng)的文件名。有一些數(shù)據(jù)庫名是保留的,可以直接訪問,這些數(shù)據(jù)庫有:admin(相當(dāng)于“root”數(shù)據(jù)庫),local(此數(shù)據(jù)庫不可復(fù)制,且一臺服務(wù)器上的所有本地集合都可以存儲在這個數(shù)據(jù)庫中),config(用戶存儲分片信息)。查看MongoDB中所有的數(shù)據(jù)庫: show dbs;查看當(dāng)前使用的數(shù)據(jù)庫: db使用“use databasename”轉(zhuǎn)換到特定的數(shù)據(jù)庫 : use admin創(chuàng)建數(shù)據(jù)庫:Use mydb: 創(chuàng)建或者轉(zhuǎn)到一個數(shù)據(jù)庫,如果什么都不操作離開的話

13、這個庫就會被系統(tǒng)自動刪除。刪除數(shù)據(jù)庫: use testMongo db.dropDatabase();2、文檔文檔是mongodb中的最核心的概念,是其核心單元。我們可以將文檔類比成關(guān)系型數(shù)據(jù)庫中的每一行數(shù)據(jù)。多個鍵及其關(guān)聯(lián)的值有序的放置在一起就是文檔。例如,在javascript中,文檔被表示為對象:“greeting”:“hello world”,這個文檔只有一個鍵“greeting”,期對應(yīng)的值為“hello world”,這是一個簡單的文檔對象,但大多數(shù)情況下會比這個復(fù)雜的多,可能會包含多個鍵/值,例如“greeting”:“hello world”,“foo”:3。文檔中的鍵/值對

14、是有順序的。MongoDB嚴(yán)格區(qū)分?jǐn)?shù)據(jù)類型和大小寫。MongoDB的鍵是字符串,而且鍵不能重復(fù),鍵不能含有空字符。同時“.”和“$”為保留字符,一般情況下不推薦使用。在mongodb中使用一種類json的bson存儲數(shù)據(jù)。bson數(shù)據(jù)可以理解為在json的基礎(chǔ)上添加了一些json中沒有的數(shù)據(jù)類型。show3、集合集合(collection)就是一組文檔的組合。如果將文檔類比成數(shù)據(jù)庫中的行,那么集合就可以類比成數(shù)據(jù)庫的表。在mongodb中的集合是無模式的,也就是說集合中存儲的文檔的結(jié)構(gòu)可以是不同的,比如下面的兩個文檔可以同時存入到一個集合中:當(dāng)?shù)谝粋€文檔插入時,集合就會被創(chuàng)建。集合命名規(guī)則:集

15、合名不能是空字符串(“”);集合名不能包含空字符(0);集合名不能以“system.”開頭,system為系統(tǒng)集合保留的前綴;用戶創(chuàng)建的集合名中不能包含“$”,因為某些系統(tǒng)生成的集合中包含$;子集合:組織集合的一種慣例是用“.”分隔不同命名空間的子集合,例如,一個具有博客功能的應(yīng)用可能包含兩個集合,分別是blog.posts和blog.auths,這是為了使組織更加清晰。這里的blog(這個集合甚至不需要存在)跟他的子集合沒有任何關(guān)系。在MongoDB中,使用子集合來組織數(shù)據(jù)非常高效,值得推薦。把數(shù)據(jù)庫名添加到集合名前,得到集合的完全限定名,即命名空間(namespace),如果使用CMS數(shù)據(jù)

16、庫中的blog.posts集合,這個集合的命名空間就是CMS.blog.posts。命名空間的長度不超過121字節(jié)。顯示當(dāng)前數(shù)據(jù)庫中所有的集合: show collections;刪除某個集合:db.collection.remove();MongDB和傳統(tǒng)關(guān)系型數(shù)據(jù)庫(RDBMS)的對比:RDBMSMongoDBTable(表)Collection(集合)Column(欄)Key(鍵)Value(值)Value(值)Records / Rows(記錄/列)Document / Object(文檔/對象)五、文檔操作1、插入文檔調(diào)用insert()方法,這個操作會給文檔自動添加一個“_id”鍵

17、,然后將其保存到MongoDB中。方法一:先創(chuàng)建一個文檔(document),然后將文檔插入到集合中(collection)示例:方法二:直接在collection中插入數(shù)據(jù)(不需要定義document)批量插入:如果需要向集合中插入多個文檔,使用批量插入會快一點。在shell中,可以使用insert函數(shù)實現(xiàn)批量插入,它于insert函數(shù)非常像,只不過接受的是一個文檔數(shù)組作為參數(shù)。注意:如果在執(zhí)行批量插入的過程中,有一個文檔插入失敗,那么在這個文檔之前的所有文檔都會被成功的插入到集合中,而這個文檔以及之后的所有文檔都插入失敗。示例:MongoDB中insert()和save()的區(qū)別:如果插入

18、的集合的“_id”值,在集合中已經(jīng)存在,用Insert執(zhí)行插入操作回報異常,已經(jīng)存在_id的鍵。用Save如果系統(tǒng)中沒有相同的_id就執(zhí)行插入操作,有的話就執(zhí)行覆蓋掉原來的值。相當(dāng)于修改操作。2、MongoDB查詢集合中的數(shù)據(jù)MongoDB中使用find來進(jìn)行查詢,find的第一個參數(shù)決定了要返回哪些文檔,這個參數(shù)是一個文檔, 用于指定查詢條件,如果不知道查詢參數(shù),則默認(rèn)查詢集合下面的所有文檔。1、基本查詢示例:Example1:查詢集合testuser下面的所有文檔:Example2:查詢集合testuser中name為“zhangsan”的文檔信息Example3:查詢集合testuser

19、中name為“zhangsan”,age為23歲的文檔信息返回指定需要的鍵有時候不需要將所有的鍵/值全部返回,可以通過設(shè)置find的第二個參數(shù)來完成,參數(shù)仍然是一個文檔對象,如果文檔對象鍵對應(yīng)的值為1,則顯示,為0,則不顯示。Example1:查詢testuser集合中的所有文檔,只顯示name和create_time鍵注意:默認(rèn)情況下,“_id”即使沒被指定,也顯示。如果不想讓其顯示,設(shè)置“_id”鍵所對應(yīng)的值為0Example2:查詢testuser集合中的所有文檔,只顯示name和create_time鍵,“_id”鍵不顯示3、MongoDB條件查詢1、$lt,$lte,$gt,$gte

20、分別對應(yīng),=Example1:查詢age =18 =30db.users.find(age:$gte:18,$lte:30)2、使用$neExample2:查出所有name不等refactor1的文檔,注意 文檔中不存在鍵name的文檔也會被查出來db.users.find(name:$ne:refactor1)3、使用or查詢MongoDB可以使用$in,$or使用$inExample3:查詢出pageViews為10000,20000的數(shù)據(jù)db.users.find(pageViews:$in:10000,20000)Db.users.find($or:pageViews:10000,pa

21、geViews:20000)$in可以指定不同類型的條件和值,如正在將用戶的ID號遷移成用戶名的過程中,要做到兩者兼顧的查詢:Example4:這會匹配user_id為12345和refactor的文檔.db.users.find(user_id:$in:12345,refactor)使用$nin返回與數(shù)組中所有條件都不匹配的文檔Example5:查出所有pageViews不等10000,20000的文檔,注意:文檔中不存在鍵pageViews的文檔也會被查出來db.users.find(pageViews:$nin:10000,20000)4、正則表達(dá)式正則表達(dá)式能夠靈活有效的匹配字符串.E

22、xample6:查找所有名包含refact或Refact的用戶,使用正則表達(dá)式執(zhí)行忽略大小寫的匹配db.users.find(name:/refact/i)系統(tǒng)可以接受正則表達(dá)式標(biāo)識(i),但不是一定有.現(xiàn)在匹配了各種大小寫形式的refact.MongoDB可以為前綴型正則表達(dá)式(如:/refactor/)查詢創(chuàng)建索引.所以這種類型的查詢非常高效.Example7:查出name為/refact/的文檔.db.users.find(name:/refact/)5、使用$size$size可以查詢指定長度的數(shù)組Example8:查詢數(shù)組長度為3的數(shù)組db.users.find(emails:$si

23、ze:3)6、使用$slice查詢find的第二個參數(shù)是可選的,可以指定返回那些鍵,$slice返回數(shù)組的一個子集合Example9:返回emails數(shù)組的前兩個元素db.users.find(userName:refactor,emails:$slice:2)Example10:返回emails數(shù)組的后兩個元素 db.users.find(userName:refactor,emails:$slice:-2)Example11:返回emails數(shù)組的第2個和第11個元素.如果數(shù)組不夠11個,則返回第2個后面的所有元素db.users.find(userName:refactor,emails

24、:$slice:1,10)$slice默認(rèn)將返回文檔中的所有鍵.7、MongoDB Limit與Skip方法MongoDB Limit() 方法如果你需要在MongoDB中讀取指定數(shù)量的數(shù)據(jù)記錄,可以使用MongoDB的Limit方法,limit()方法接受一個數(shù)字參數(shù),該參數(shù)指定從MongoDB中讀取的記錄條數(shù)。limit()方法基本語法如下所示:Db.collection_name.find().limit(NUMBER)MongoDB Skip() 方法我們除了可以使用limit()方法來讀取指定數(shù)量的數(shù)據(jù)外,還可以使用skip()方法來跳過指定數(shù)量的數(shù)據(jù),skip方法同樣接受一個數(shù)字參

25、數(shù)作為跳過的記錄條數(shù)。skip() 方法腳本語法格式如下:Db.collection_name.find().limit(NUMBER).skip(NUMBER)注:skip()方法默認(rèn)參數(shù)為 0 。8、MongoDB 排序 MongoDB sort()方法在MongoDB中使用使用sort()方法對數(shù)據(jù)進(jìn)行排序,sort()方法可以通過參數(shù)指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排序,而-1是用于降序排列。sort()方法基本語法如下所示:db.COLLECTION_NAME.find().sort(列名:1)3、mongod更新集合中的數(shù)據(jù)調(diào)用mongodb

26、中自定義的update函數(shù),即可完成對數(shù)據(jù)的更新db.collection.update(criteria,objNew,upsert,multi);update()函數(shù)接受以下四個參數(shù):criteria : update的查詢條件,類似sql update查詢內(nèi)where后面的。objNew : update的對象和一些更新的操作符(如$,$inc.)等,也可以理解為sql update查詢內(nèi)set后面的upsert : 這個參數(shù)的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認(rèn)是false,不插入。multi : mongodb默認(rèn)是false,只更新找到的

27、第一條記錄,如果這個參數(shù)為true,就把按條件查出來多條記錄全部更新。示例:Example1:只更新第一條記錄:db.test0.update( count : $gt : 1 , $set : test2 : OK );Example2:全部更新:db.test0.update( count : $gt : 3 , $set : test2 : OK ,false,true );Example3:只添加第一條:db.test0.update( count : $gt : 4 , $set : test5 : OK ,true,false );Example4:全部添加加進(jìn)去:db.test0

28、.update( count : $gt : 5 , $set : test5 : OK ,true,true );Example4:全部更新:db.test0.update( count : $gt : 15 , $inc : count : 1 ,false,true );Example5:只更新第一條記錄:db.test0.update( count : $gt : 10 , $inc : count : 1 ,false,false );4、MongoDB使用- remove()函數(shù)刪除數(shù)據(jù)如果你想移除userdetails集合中user_id 為 testuser的數(shù)據(jù)你可以執(zhí)行以下

29、命令:db.userdetails.remove( user_id : testuser )如果你想刪除userdetails集合中的所有數(shù)據(jù),可以執(zhí)行以下命令:db.userdetails.remove()如果你想刪除整個userdetails集合,包含所有文檔數(shù)據(jù),可以執(zhí)行以下數(shù)據(jù):db.userdetails.drop()drop()函數(shù)返回 true或者false。以上執(zhí)行結(jié)果返回了true,說明操作成功。5、mongoDB的主從備份所謂主存復(fù)制,指的是將某臺特定電腦上的mongodb數(shù)據(jù)在其他電腦上做備份。保障數(shù)據(jù)安全。實現(xiàn):主節(jié)點配置:#主數(shù)據(jù)庫地址dbpath = E:mongo

30、db2.6databasemaster27000#主數(shù)據(jù)庫端口號port = 27000#主數(shù)據(jù)庫所在服務(wù)器bind_ip = 127.0.0.1#確定我是主服務(wù)器master = true從節(jié)點配置:#從數(shù)據(jù)庫地址dbpath = E:mongodb2.6databaseslaves27001#從數(shù)據(jù)庫端口號 port = 27001#從數(shù)據(jù)庫所在服務(wù)器bind_ip = 127.0.0.1 #告訴從服務(wù)器 主節(jié)點數(shù)據(jù)庫地址source = 127.0.0.1:27000#確定自己是從服務(wù)器slave = true啟動方式:先啟動主節(jié)點,然后用客戶端連接主節(jié)點。隨后啟動各個從節(jié)點即可。其他配

31、置參數(shù): only 從節(jié)點配置,只復(fù)制特定某個數(shù)據(jù)庫 autoresync 從節(jié)點配置,如果主節(jié)點與從節(jié)點數(shù)據(jù)不同,則自動重新同步。配置這個節(jié)點可以給運行了一段時間的主節(jié)點加上一個新節(jié)點,則這個新節(jié)點會把之前的主節(jié)點數(shù)據(jù)全部同步過來,而不是從現(xiàn)在這個時間同步。 slavedelay 從節(jié)點配置,從數(shù)據(jù)庫延遲同步主數(shù)據(jù)庫的時間 fastsync 從節(jié)點配置,以主節(jié)點的數(shù)據(jù)庫快照啟動從節(jié)點,可以加快啟動速度。oplogsize 主節(jié)點配置,主節(jié)點oplog大小,主節(jié)點會把數(shù)據(jù)庫操作的日志寫在oplog中,從節(jié)點參考o(jì)plog做復(fù)制操作,可以根據(jù)自身情況調(diào)節(jié)日志大小。如果不指定oplogsize大小

32、,mongod將指配5%的可用磁盤空間給他,32位機(jī)最小是50M,64位機(jī)最小是1G。Ps:1、在從節(jié)點處可以看從節(jié)點狀態(tài):2、主節(jié)點可以進(jìn)行增刪改查,同時從節(jié)點可以對主節(jié)點的數(shù)據(jù)進(jìn)行同步更新。從節(jié)點只可以進(jìn)行查詢,不能對從節(jié)點進(jìn)行增刪改。3、在從節(jié)點的local庫中,有個resources表,可以查看主節(jié)點信息。4、動態(tài)添加子節(jié)點如果在啟動從服務(wù)器的時候,沒有指定source則可手動在從服務(wù)的local庫,有個resources表,手動添加主節(jié)點信息。db.sources.insert(host:127.0.0.1:27000)5、動態(tài)刪除子節(jié)點在從節(jié)點的resources的表中刪除就行 (有問題)6、MongoDB的副本集當(dāng)一個節(jié)點出現(xiàn)故障,可以自動切換到另外一個節(jié)點上。配置實現(xiàn):節(jié)點1:節(jié)點2:節(jié)點3:分別啟動上面三個節(jié)點。然后隨便選一個節(jié)點,執(zhí)行下面指令:1、轉(zhuǎn)換到admin庫下面:User admin2、執(zhí)行以下指令:查看副本集狀態(tài):任選一個節(jié)

溫馨提示

  • 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

提交評論