MongoDB Replica Sets和Auto Sharding配置簡介
MongoDB Replica Sets和Auto Sharding配置的簡單步驟是本文我們主要要介紹的內(nèi)容,網(wǎng)上有很多教程把Replica Sets和Auto Sharding(或者是Sharding)寫在了一起,對于初學(xué)者可能會覺得有些莫名,之所以這樣做是因為,一個較好的Auto Sharding解決方案是將每個一shard(分片)定為一個Replica Sets(復(fù)制集)。
一個Replica Sets由若干個mongod instance組成,在這個集合中,所有的instance的數(shù)據(jù)相同,這使得即使有某一臺機(jī)子當(dāng)?shù)袅耍渌鼨C(jī)子還是可以正常運行,而且這部分的控制是由Mongo自動完成的,因而盡可能地減少了因當(dāng)機(jī)而產(chǎn)生的錯誤及人工處理的部分。
而Sharding是可以將龐大的數(shù)據(jù)庫拆分為幾個部分分別發(fā)放到每一個shard,一來降低了單一一臺服務(wù)器的壓力,同時通過減少潛在的損失比例來提高效率。也就是說一個基于Replica Sets的Auto Sharding結(jié)構(gòu),可以把一個完整而且龐大的數(shù)據(jù)庫根據(jù)個人定制,拆分到若干個服務(wù)器集合,每個服務(wù)器集合中的服務(wù)器群又相互保持?jǐn)?shù)據(jù)同步,所以除非一個服務(wù)器集合中的所有服務(wù)器都當(dāng)?shù)袅耍駝t某臺或幾臺的當(dāng)機(jī)對數(shù)據(jù)庫的影響是微忽其微的。關(guān)于這兩個部分,其實在Mongo的官方文檔里有詳細(xì)的說明,所以此文是以總結(jié)歸納為目的而寫。
(圖片來源:http://www.mongodb.org/display/DOCS/Sharding+Introduction)
1.一個完整的Auto Sharding功能的實現(xiàn)需要用到mongod和mongos,其中mongos作為真正的應(yīng)用接口,數(shù)據(jù)的輸入輸出都應(yīng)經(jīng)過它。然后還需要一個config server,它是mongod,但它不會用來存儲應(yīng)用程序的數(shù)據(jù)庫,通俗的來說而是存放了這整個結(jié)構(gòu)的配置屬性,mongos會從config server中讀取配置來進(jìn)行工作。最后是真正會存儲數(shù)據(jù)的mongod們,它們按組分為若干個Replica Sets,用來存放mongos拆分下來的各個sharding。
2.配置推薦從配置各個Replica Sets開始,一個Replica Set包含若干個mongod instance,基礎(chǔ)命令是:mongod --replSet %SETNAME% --shardsvr,同屬一個Replica Set的instance都使用同一個%SETNAME%,比如一個名為“set1”的Replica Set中有三臺服務(wù)器,分別名為“server1”,“server2”,“server3”,則在這三臺服務(wù)器上需要分別運行命令:
server1: mongod --replSet set1 --shardsvr
server2: mongod --replSet set1 --shardsvr
server2: mongod --replSet set1 --shardsvr
啟動mongod包含多個參數(shù),這個可以通過命令:mongod --help來查詢,根據(jù)自己的需求修改,上面的為必要部分。
每個服務(wù)器都啟動好mongod后,開始進(jìn)行Replica Sets的初始化。
初始化的方法有多種,以下介紹比較方便的兩種:
(1)initiate(cfg),其中cfg由用戶編寫;
(2)initiate->add;
3.然后是啟動config serve;
4.最后是啟動mongs;
以上就是MongoDB Replica Sets和Auto Sharding配置的簡單過程,本文就介紹到這里,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】


2012-02-15 09:36:50
2010-08-12 13:15:26




