【MongoDB】在windows平台下搭建mongodb的分區叢集(二),mongodb叢集

來源:互聯網
上載者:User

【MongoDB】在windows平台下搭建mongodb的分區叢集(二),mongodb叢集

在上一片部落格中我們講了Mongodb資料庫中分區叢集的主要原理。在本篇部落格中我們主要講描述分區叢集的搭建過程。配置分區叢集主要有兩個步驟,第一啟動所有需要的mongod和mongos進程。第二步就是啟動一個mongos與叢集通訊。下面我們一步步來描述叢集的搭建過程。


圖1-1  MongoDB分區叢集中的組件


圖 1-2 由執行個體分區叢集構成的進程全貌


備忘:以上兩者圖片均引自於Kyle Banker著 丁雪豐譯《MongoDB 實戰》  

2.1 建立分區目錄

備忘:此處於建立複製集類似,詳細請查看部落格:http://blog.csdn.net/sxb0841901116/article/details/40596361


2.2 啟動複本集

    我們用如下命令啟動兩個複本集:

mongod --shardsvr --replSet shard-a --dbpath "D:\Program Files\mongodb\data\slide\data\rs-a-1" --port 3000 --logpath "D:\Program Files\mongodb\data\slide\log\rs-a-1.log" --nojournalmongod --shardsvr --replSet shard-a --dbpath "D:\Program Files\mongodb\data\slide\data\rs-a-2" --port 3001 --logpath "D:\Program Files\mongodb\data\slide\log\rs-a-2.log" --nojournalmongod --shardsvr --replSet shard-a --dbpath "D:\Program Files\mongodb\data\slide\data\rs-a-3" --port 3002 --logpath "D:\Program Files\mongodb\data\slide\log\rs-a-3.log" --nojournalmongod --shardsvr --replSet shard-b --dbpath "D:\Program Files\mongodb\data\slide\data\rs-b-1" --port 30100 --logpath "D:\Program Files\mongodb\data\slide\log\rs-b-1.log" --nojournalmongod --shardsvr --replSet shard-b --dbpath "D:\Program Files\mongodb\data\slide\data\rs-b-2" --port 30101 --logpath "D:\Program Files\mongodb\data\slide\log\rs-b-2.log" --nojournalmongod --shardsvr --replSet shard-b --dbpath "D:\Program Files\mongodb\data\slide\data\rs-b-3" --port 30102 --logpath "D:\Program Files\mongodb\data\slide\log\rs-b-3.log" --nojournal

當成功運行後,會出現類似於下面的6個黑視窗:


2.3 啟動複本集

   啟動第一複本集shard-a:

 

大家可用用rs.status()命令來查看第一複本集的狀態。 

啟動第第二複本集shard-b:

 

2.4 建立設定管理員目錄




2.5 用如下命令啟動設定管理員
mongod --configsvr --dbpath "D:\Program Files\mongodb\data\slide\data\config-1" --port 27019 --logpath "D:\Program Files\mongodb\data\slide\log\config-1.log" --nojournalmongod --configsvr --dbpath "D:\Program Files\mongodb\data\slide\data\config-2" --port 27020 --logpath "D:\Program Files\mongodb\data\slide\log\config-2.log" --nojournalmongod --configsvr --dbpath "D:\Program Files\mongodb\data\slide\data\config-3" --port 27021 --logpath "D:\Program Files\mongodb\data\slide\log\config-3.log" --nojournal

用shell串連或者查看log文,確保每台設定管理員都已啟動並正常運行,並驗證每個進程都在監聽配置的連接埠。查看每台設定管理員的日誌,應該能看到這樣的內容。 

 

查看任務管理視窗,正在啟動並執行進程:


2.6 啟動Mongos

啟動mongos必須使用configdb選項來啟動。它接受一個用逗號分割的設定管理員地址清單:

 

Mongos --configdb WIN--20141018KO:27019,WIN--20141018KO:27020,WIN--20141018KO:27021 --logpath "D:\Program Files\mongodb\data\slide\log\mongos.log" --port 40000

二、 配置叢集

登陸mongos上,查看可用的命令:

 

 

把分區shard-a, shard-b添加到分區叢集中:

 

 

兩種方式查看分區叢集:

 

 



mongodb叢集配置好了之後怎儲存,下次開機還可以使用?windows環境

本來就是可以的
對於複本集模式,叢集參數是寫在每一個節點內部的
對於分區模式,叢集參數寫在設定管理員裡
 
mongodb在加keyfile的情況下,怎實現分機叢集部署,1台路由,3台配置,三台分區

在配置分區的節點
mongod --port 27017 --fork --logpath ar/log/mongo_shard1.log --dbpath /data0/mongo/shard1 --shardsvr
mongod --port 27018 --fork --logpath ar/log/mongo_shard2.log --dbpath /data0/mongo/shard2 --shardsvr
mongod --port 27217 --fork --logpath ar/log/mongo_config.log --dbpath /data0/mongo/config --configsvr
配置路由
mongos --port 27417 --fork --logpath ar/log/mongos.log --configdb 127.0.0.1:27217 --chunkSize 1
在用戶端配置shard
mongo --port 27417
MongoDB shell version: 1.6.5
connecting to: 127.0.0.1:27417/test
> use admin;
switched to db admin
> db.runCommand({addshard:"127.0.0.1:27017"})
{ "shardAdded" : "shard0000", "ok" : 1 }
> db.runCommand({addshard:"127.0.0.1:27018"})
{ "shardAdded" : "shard0001", "ok" : 1 }

下面我們為DataBase “foo”啟用Sharding,並將其中的 Collection “col” 的 shard key設定為“{_id: 1}”,用來測試Sharding功能:
> db.runCommand({enablesharding:'foo'});
{ "ok" : 1 }
> db.runCommand({shardcollection:"foo.col", key:{_id:1}});
{ "collectionsharded" : "foo.col", "ok" : 1 }
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.