centOS 7 mongodb 集群 分片 副本集

在單臺機(jī)器上測試:



? mkdir -p /data/mongodbtest136/mongos/log

? mkdir -p /data/mongodbtest137/mongos/log

? mkdir -p /data/mongodbtest138/mongos/log

? mkdir -p /data/mongodbtest136/config/data

? mkdir -p /data/mongodbtest137/config/data

? mkdir -p /data/mongodbtest138/config/data

? mkdir -p /data/mongodbtest138/config/log

? mkdir -p /data/mongodbtest137/config/log

? mkdir -p /data/mongodbtest136/config/log

? mkdir -p /data/mongodbtest136/shard1/data

? mkdir -p /data/mongodbtest136/shard2/data

? mkdir -p /data/mongodbtest136/shard3/data

? mkdir -p /data/mongodbtest136/shard3/log

? mkdir -p /data/mongodbtest136/shard2/log

? mkdir -p /data/mongodbtest136/shard1/log

? mkdir -p /data/mongodbtest137/shard1/log

? mkdir -p /data/mongodbtest137/shard2/log

? mkdir -p /data/mongodbtest137/shard3/log

? mkdir -p /data/mongodbtest137/shard3/data

? mkdir -p /data/mongodbtest137/shard2/data

? mkdir -p /data/mongodbtest137/shard1/data

? mkdir -p /data/mongodbtest138/shard1/data

? mkdir -p /data/mongodbtest138/shard2/data

? mkdir -p /data/mongodbtest138/shard3/data

? mkdir -p /data/mongodbtest138/shard3/log

? mkdir -p /data/mongodbtest138/shard2/log

? mkdir -p /data/mongodbtest138/shard1/log




?mongod --configsvr --replSet cfgReplSet --dbpath /data/mongodbtest136/config/data --port 21360 --logpath /data/mongodbtest136/config/log/config.log --fork

?mongod --configsvr --replSet cfgReplSet --dbpath /data/mongodbtest137/config/data --port 21370 --logpath /data/mongodbtest137/config/log/config.log --fork

?mongod --configsvr --replSet cfgReplSet --dbpath /data/mongodbtest138/config/data --port 21380 --logpath /data/mongodbtest138/config/log/config.log --fork



一條一條的輸入以下三條:?


mongos ?--configdb cfgReplSet/127.0.0.1:21360,127.0.0.1:21370,127.0.0.1:21380 ?--port 20006 ? --logpath ?/data/mongodbtest136/mongos/log/mongos.log --fork

?mongos ?--configdb cfgReplSet/127.0.0.1:21360,127.0.0.1:21370,127.0.0.1:21380 ?--port 20007 ? --logpath ?/data/mongodbtest137/mongos/log/mongos.log --fork

?mongos ?--configdb cfgReplSet/127.0.0.1:21360,127.0.0.1:21370,127.0.0.1:21380 ?--port 20008 ? --logpath ?/data/mongodbtest138/mongos/log/mongos.log --fork


?mongod --shardsvr --replSet shard1 --port 21361 --dbpath /data/mongodbtest136/shard1/data ?--logpath /data/mongodbtest136/shard1/log/shard1.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard2 --port 21362 --dbpath /data/mongodbtest136/shard2/data ?--logpath /data/mongodbtest136/shard2/log/shard2.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard3 --port 21363 --dbpath /data/mongodbtest136/shard3/data ?--logpath /data/mongodbtest136/shard3/log/shard3.log --fork --nojournal ?--oplogSize 10


? mongod --shardsvr --replSet shard1 --port 21371 --dbpath /data/mongodbtest137/shard1/data ?--logpath /data/mongodbtest137/shard1/log/shard1.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard2 --port 21372 --dbpath /data/mongodbtest137/shard2/data ?--logpath /data/mongodbtest137/shard2/log/shard2.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard3 --port 21373 --dbpath /data/mongodbtest137/shard3/data ?--logpath /data/mongodbtest137/shard3/log/shard3.log --fork --nojournal ?--oplogSize 10


? mongod --shardsvr --replSet shard1 --port 21381 --dbpath /data/mongodbtest138/shard1/data ?--logpath /data/mongodbtest138/shard1/log/shard1.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard2 --port 21382 --dbpath /data/mongodbtest138/shard2/data ?--logpath /data/mongodbtest138/shard2/log/shard2.log --fork --nojournal ?--oplogSize 10

? mongod --shardsvr --replSet shard3 --port 21383 --dbpath /data/mongodbtest138/shard3/data ?--logpath /data/mongodbtest138/shard3/log/shard3.log --fork --nojournal ?--oplogSize 10



-----im Start-------

#配置服務(wù)器

? mongo ?127.0.0.1:21360

?use admin

?#定義副本集配置

config = { _id:"cfgReplSet",

configsvr:true,

?members:[

? ? ? ? ? ? ? ? ? ? ?{_id:0,host:"127.0.0.1:21360"},

? ? ? ? ? ? ? ? ? ? ?{_id:1,host:"127.0.0.1:21370"},

? ? ? ? ? ? ? ? ? ? ?{_id:2,host:"127.0.0.1:21380"}

? ? ? ? ? ? ? ? ]

? ? ? ? ?}


#初始化副本集配置

rs.initiate(config);

?-----im End-------



?mongo ?127.0.0.1:21361

?use admin

?#定義副本集配置

config = { _id:"shard1", members:[

? ? ? ? ? ? ? ? ? ? ?{_id:0,host:"127.0.0.1:21361"},

? ? ? ? ? ? ? ? ? ? ?{_id:1,host:"127.0.0.1:21371"},

? ? ? ? ? ? ? ? ? ? ?{_id:2,host:"127.0.0.1:21381",arbiterOnly:true}

? ? ? ? ? ? ? ? ]

? ? ? ? ?}


#初始化副本集配置

rs.initiate(config);




?mongo ?127.0.0.1:21362

?use admin

?#定義副本集配置

config = { _id:"shard2", members:[

? ? ? ? ? ? ? ? ? ? ?{_id:0,host:"127.0.0.1:21362"},

? ? ? ? ? ? ? ? ? ? ?{_id:1,host:"127.0.0.1:21372"},

? ? ? ? ? ? ? ? ? ? ?{_id:2,host:"127.0.0.1:21382",arbiterOnly:true}

? ? ? ? ? ? ? ? ]

? ? ? ? ?}


#初始化副本集配置

rs.initiate(config);



?mongo ?127.0.0.1:21363

?use admin

?#定義副本集配置

config = { _id:"shard3", members:[

? ? ? ? ? ? ? ? ? ? ?{_id:0,host:"127.0.0.1:21363"},

? ? ? ? ? ? ? ? ? ? ?{_id:1,host:"127.0.0.1:21373"},

? ? ? ? ? ? ? ? ? ? ?{_id:2,host:"127.0.0.1:21383",arbiterOnly:true}

? ? ? ? ? ? ? ? ]

? ? ? ? ?}


#初始化副本集配置

rs.initiate(config);


? mongo ?127.0.0.1:20006

?#使用admin數(shù)據(jù)庫

use ?admin


#串聯(lián)路由服務(wù)器與分配副本集1

db.runCommand( { addshard : "shard1/127.0.0.1:21361,127.0.0.1:21371,127.0.0.1:21381"});

如里shard是單臺服務(wù)器篡殷,用 db.runCommand( { addshard : “[: ]” } )這樣的命令加入粥烁,如果shard是副本集是辕,用db.runCommand( { addshard : “replicaSetName/[:port][,serverhostname2[:port],…]” });這樣的格式表示 助币。


#串聯(lián)路由服務(wù)器與分配副本集2

db.runCommand( { addshard : "shard2/127.0.0.1:21362,127.0.0.1:21372,127.0.0.1:21382"});


#串聯(lián)路由服務(wù)器與分配副本集3

db.runCommand( { addshard : "shard3/127.0.0.1:21363,127.0.0.1:21373,127.0.0.1:21383"});

#查看分片服務(wù)器的配置

db.runCommand( { listshards : 1 } );


?#指定testdb分片生效

db.runCommand( { enablesharding :"testdb"});


#指定數(shù)據(jù)庫里需要分片的集合和片鍵 ?#均勻分布

db.runCommand( { shardcollection : "testdb.table1",key : {_id: 'hashed'} } )

db.runCommand( { shardcollection : "testdb.table2",key : {_id: 1,id:1} } )

db.runCommand( { shardcollection : "testdb.table3",key : {id: 1, _id:1} } )

#db.runCommand( { shardcollection : "testdb.table3",key : {_id: 'hashed',id:1} } )

db.runCommand( { shardcollection : "testdb.table4",key : {id: 'hashed'} } )

# db.table1.createIndex({_id: 'hashed'})

?# http://www.ttlsa.com/mongodb/how-to-choose-a-shard-key-for-mongodb/


?mongo ?127.0.0.1:20006

?#使用testdb

use ?testdb;


#插入測試數(shù)據(jù)

for (var i = 1; i <= 1000; i++) db.table1.save({id:i,"test1":"testval1"+i});

for (var i = 1; i <= 1000; i++) db.table2.save({id:i,"test2":"testval2"+i});

#for (var i = 1; i <= 1000; i++) db.table3.save({id:i,"test3":"testval3"+i});

for (var i = 1; i <= 1000; i++) db.table4.save({id:i,"test4":"testval4"+i});

db.table1.ensureIndex({id: 1, _id: 1}, {background: true})


#查看分片情況如下烈和,部分無關(guān)信息省掉了

db.table1.stats();

?#Robomongo.exe

?#查看分片信息

?db.getCollection('table1').stats();

?db.printShardingStatus();


?#這帶來一個(gè)問題是我們測開發(fā)測試的時(shí)候,往往希望通過觀察數(shù)據(jù)在遷移來證明分片是否成功湖雹,但64M200M顯然過大勤庐,解決方法是我們可以在啟動(dòng)mongos的時(shí)候用—chunkSize來制定塊的大小,單位是MB奥溺。

? ?mongos> use config

? ?mongos> db.settings.save( { _id:"chunksize", value: 1 } )


參考鏈接

http://www.lanceyan.com/tech/arch/mongodb_shard1.html

http://blog.csdn.net/nuan_feng/article/details/60588333

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辞色,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浮定,更是在濱河造成了極大的恐慌相满,老刑警劉巖诱篷,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雳灵,居然都是意外死亡棕所,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門悯辙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳省,“玉大人,你說我怎么就攤上這事躲撰≌氡幔” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵拢蛋,是天一觀的道長桦他。 經(jīng)常有香客問我,道長谆棱,這世上最難降的妖魔是什么快压? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮垃瞧,結(jié)果婚禮上蔫劣,老公的妹妹穿的比我還像新娘。我一直安慰自己个从,他們只是感情好脉幢,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嗦锐,像睡著了一般嫌松。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奕污,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天萎羔,我揣著相機(jī)與錄音,去河邊找鬼菊值。 笑死外驱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腻窒。 我是一名探鬼主播昵宇,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼儿子!你這毒婦竟也來了瓦哎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒋譬,沒想到半個(gè)月后割岛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡犯助,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年癣漆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剂买。...
    茶點(diǎn)故事閱讀 38,629評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惠爽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞬哼,到底是詐尸還是另有隱情婚肆,我是刑警寧澤,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布坐慰,位于F島的核電站较性,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏结胀。R本人自食惡果不足惜赞咙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望把跨。 院中可真熱鬧人弓,春花似錦、人聲如沸着逐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耸别。三九已至,卻和暖如春县钥,著一層夾襖步出監(jiān)牢的瞬間秀姐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工若贮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留省有,地道東北人梅桩。 一個(gè)月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓临梗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親塘雳。 傳聞我的和親對象是個(gè)殘疾皇子匾效,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內(nèi)容