MongoDB 分片副本集集羣搭建

配置準備

三臺機器:mongodb

A(193.168.10.101) 

B(193.168.10.102)

C(193.168.10.103)

 

MongoDB 安裝目錄:/usr/local/mongodb
MongoDB 數據庫目錄:/usr/local/mongodb/data

MongoDB 日誌目錄:/usr/local/mongodb/log
MongoDB 配置文件:/usr/local/mongodb/conf/mongodb.conf

每臺機器上都安裝好mongodb數據庫

 

配置過程

啓動mongo實例

三臺機器上分別啓動app

./mongod --logpath /usr/local/mongodb/logs/a/r0.log --logappend --dbpath /usr/local/mongodb/data/a/r0 --journalCommitInterval 300 --port 10000 --shardsvr --replSet setA --rest  --oplogSize 64 --fork

./mongod --logpath /usr/local/mongodb/logs/b/r0.log --logappend --dbpath /usr/local/mongodb/data/b/r0 --journalCommitInterval 300 --port 20000 --shardsvr --replSet setB --rest  --oplogSize 64 --fork

./mongod --logpath /usr/local/mongodb/logs/c/r0.log --logappend --dbpath /usr/local/mongodb/data/c/r0 --journalCommitInterval 300 --port 30000 --shardsvr --replSet setC --rest  --oplogSize 64 --fork

.
/mongod --configsvr --logpath /usr/local/mongodb/logs/configServer/r0.log --logappend --dbpath /usr/local/mongodb/data/configServer/r0 --port 40000 --fork

//三臺機器執行完上面的之後 再執行下面的命令
./mongos --configdb 193.168.10.101:40000,193.168.10.102:40000,193.168.10.103:40000 --logpath /usr/local/mongodb/logs/serverlogs/mongos.log --logappend --port 50000 --fork

 

設置副本集

./mongo 193.168.10.101:10000
rs.initiate({_id : "setA", members : [{_id : 0, host : "193.168.10.101:10000"}]})
rs.add("193.168.10.102:10000")
rs.add("193.168.10.103:10000")

./mongo 193.168.10.101:20000
rs.initiate({_id : "setB", members : [{_id : 0, host : "193.168.10.101:20000"}]})
rs.add("193.168.10.102:20000")
rs.add("193.168.10.103:20000")

./mongo 193.168.10.101:30000
rs.initiate({_id : "setC", members : [{_id : 0, host : "193.168.10.101:30000"}]})
rs.add("193.168.10.102:30000")
rs.add("193.168.10.103:30000")
能夠本身設置哪一個是主節點
cfg
=rs.status() //查看節點順序 ...... cfg.members[0].priority = 1 cfg.members[1].priority = 1 cfg.members[2].priority = 2 //設置爲2的爲主節點 rs.reconfig(cfg)

分別進入兩個從節點進行配置(setA setB setC每一個的從節點都須要)spa

db.getMongo().setSlaveOk() //設置從節點爲只讀

 

設置分片

//設置分片 從50000路由端口進入
./mongo 193.168.10.101:50000

sh.addShard("setA/193.168.10.101:10000,193.168.10.102:10000,193.168.10.103:10000");

sh.addShard("setB/193.168.10.101:20000,193.168.10.102:20000,193.168.10.103:20000");

sh.addShard("setC/193.168.10.101:30000,193.168.10.102:30000,193.168.10.103:30000");

驗證rest

printShardingStatus()

 

use testdb
db.createCollection('test01') //建立一個表
use admin
db.runCommand({enablesharding:'test01'})  //設置數據庫能夠分片
db.runCommand({shardcollection:'testdb.test01',key:{c_id:1}})
相關文章
相關標籤/搜索