MongoDB shard replica config/ 分片 复制 配置

来源:互联网 发布:python爬虫高级教程 编辑:程序博客网 时间:2024/05/16 17:28

下面的配置是在同一台机器上的,我是在32位的xp下测试的,因为在32位的机器有2G数据大小的限制,数据量不会太大。

这里配置两个replica set,每个replica set有三个shard,即三份数据。


配置第一组:三个shard,同属于一个replica set,即一份数据会有两个备份数据和一个主数据,共三份
./bin/mongod --shardsvr --logpath ./logs/sharda.log --logappend --dbpath ./data/a/r0 --port 10000 --rest --replSet set1 &
./bin/mongod --shardsvr --logpath ./logs/sharda.log --logappend --dbpath ./data/a/r1 --port 10001 --rest --replSet set1 &
./bin/mongod --shardsvr --logpath ./logs/sharda.log --logappend --dbpath ./data/a/r2 --port 10002 --rest --replSet set1 &

./bin/mongo --port 10000
cfg = {_id: 'set1', members:[
    {_id: 0, host: 'localhost:10000'},
    {_id: 1, host: 'localhost:10001'},
    {_id: 2, host: 'localhost:10002'}]
}
rs.initiate(cfg);
rs.status()


配置第二组,三个shard,分别作为三个replica set
./bin/mongod --shardsvr --logpath ./logs/shardb.log --logappend --dbpath ./data/b/r3 --port 10010 --rest --replSet set2 &
./bin/mongod --shardsvr --logpath ./logs/shardb.log --logappend --dbpath ./data/b/r4 --port 10011 --rest --replSet set2 &
./bin/mongod --shardsvr --logpath ./logs/shardb.log --logappend --dbpath ./data/b/r5 --port 10012 --rest --replSet set2 &

./bin/ mongo --port 10010
cfg = {_id: 'set2', members:[
    {_id: 0, host: 'localhost:10010'},
    {_id: 1, host: 'localhost:10011'},
    {_id: 2, host: 'localhost:10012'}]
}
rs.initiate(config);
rs.status()

配置config server:
./bin/mongod --configsvr --dbpath ./data/config/ --port 20000 --rest --logpath /logs/config.log --logappend &

配置mongos route:
./bin/mongos --configdb localhost:20000 --chunkSize 10 --logpath ./logs/mongos.log --logappend &

配置shard:
use admin
db.runCommand({addshard:'set1/localhost:10000,localhost:10001,localhost:10002'})
db.runCommand({addshard:'set2/localhost:10010,localhost:10011,localhost:10013'})
db.runCommand({enablesharding:'crawler'})
db.runCommand({shardcollection:'crawler.videos', key:{_id:1}})
db.runCommand({listshards:1})
printShardingStatus()

另外可以进入其中一个shardsvr,查看replica set 的情况:

./bin/mongo --port 10000

rs.status() 命令会显示set的信息。

其中,health为1表明服务器正常,0表明服务器down了

state为1表明是Primary,2表明是Secondary,3是Recovering,7是Arbiter,8是Down

 

原创粉丝点击