mongodb叢集搭建

來源:互聯網
上載者:User

只有一台ubuntu機器,配置方案:
1、3個分區sharding
2、每一個分區由3個節點構成1主2備的Replica Sets
3、3個配置節點Configsever

4、1個路由節點Mongos

Shard Server: mongod 執行個體,用於儲存實際的資料區塊,實際生產環境中一個shard server角色可由幾台機器組個一個relica set承擔,防止主機單點故障

Config Server: mongod 執行個體,儲存了整個 Cluster Metadata,其中包括 chunk 資訊。

Route Server: mongos 執行個體,前端路由,用戶端由此接入,且讓整個叢集看上去像單一資料庫,前端應用可以透明使用。

建立資料目錄及日誌目錄

data/a/r0
data/a/r1
data/a/r2
data/b/r0
data/b/r1
data/b/r2
data/c/r0
data/c/r1
data/c/r2
data/configsvr/r0
data/configsvr/r1
data/configsvr/r2

建立記錄檔目錄:

data/log/a
data/log/b
data/log/c
data/log/configsvr

建立分區及複製集

第一組分區

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc0.log --dbpath ../../data/a/rc0 --logappend --port 10000 --shardsvr --replSet setA --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc1.log --dbpath ../../data/a/rc1 --logappend --port 10001 --shardsvr --replSet setA --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc2.log --dbpath ../../data/a/rc2 --logappend --port 10002 --shardsvr --replSet setA --rest

建立分區後建立複製集

./mongo --port 10000

>config={_id:"setA",members:[{_id:0,host:"127.0.0.1:10000"},{_id:1,host:"127.0.0.1:10001"},{_id:2,host:"127.0.0.1:10002"}]}

 rs.initiate(config)

第二組分區

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc0.log --dbpath ../../data/b/rc0 --logappend --port 20000 --shardsvr --replSet setB --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc1.log --dbpath ../../data/b/rc1 --logappend --port 20001 --shardsvr --replSet setB --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc2.log --dbpath ../../data/b/rc2 --logappend --port 20002 --shardsvr --replSet setB --rest

同樣建立複製集

./mongo --port 20000

>config={_id:"setB",members:[{_id:0,host:"127.0.0.1:20000"},{_id:1,host:"127.0.0.1:20001"},{_id:2,host:"127.0.0.1:20002"}]}

 rs.initiate(config)

第三組分區

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc0.log --dbpath ../../data/c/rc0 --logappend --port 30000 --shardsvr --replSet setC --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc1.log --dbpath ../../data/c/rc1 --logappend --port 30001 --shardsvr --replSet setC --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc2.log --dbpath ../../data/c/rc2 --logappend --port 30002 --shardsvr --replSet setC --rest

同樣建立複製組

./mongo --port 30000

>config={_id:"setC",members:[{_id:0,host:"127.0.0.1:30000"},{_id:1,host:"127.0.0.1:30001"},{_id:2,host:"127.0.0.1:30002"}]}

啟動三個佈建服務節點Configsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc0.log --dbpath ../../data/configsvr/rc0 --logappend
--port 40000 --shardsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc1.log --dbpath ../../data/configsvr/rc1 --logappend
--port 40001 --shardsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc2.log --dbpath ../../data/configsvr/rc2 --logappend
--port 40002 --shardsvr

啟動路由節點

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongos --configdb 127.0.0.1:40000,127.0.0.1:40001,127.0.0.1:40002 --logpath ../../data/log/mongos.log --logappend
--port 50000

設定分區

./mongo 127.0.0.1:50000

切換至admin

mongos>use admin

db.runCommand({addshard:"setA/127.0.0.1:10000,127.0.0.1:10001,127.0.0.1:10002",name:"ShardSetA"})

db.runCommand({addshard:"setB/127.0.0.1:20000,127.0.0.1:20001,127.0.0.1:20002",name:"ShardSetB"})

db.runCommand({addshard:"setB/127.0.0.1:20000,127.0.0.1:20001,127.0.0.1:20002",name:"ShardSetB"})

查看結果

printShardingStatus();

配置完成


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.