数据库

 首页 > 数据库 > MongoDB > 在MongoDB数据库中配置shard replica config/ 分片 复制

在MongoDB数据库中配置shard replica config/ 分片 复制

分享到:
【字体:
导读:
         摘要:下面的配置是在同一台机器上的,我是在32位的xp下测试的,因为在32位的机器有2G数据大小的限制,数据量不会太大。这里配置两个replicaset,每个replicaset有三个shard,即三份数据。配置第一组:三个shard,同属于一个replicaset,即一份数据会有两个备...

在MongoDB数据库中配置shard replica config/ 分片 复制
下面的配置是在同一台机器上的,我是在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
在MongoDB数据库中配置shard replica config/ 分片 复制
分享到:
MongoDB数据库中配置sharding
MongoDB数据库中配置sharding 这里先介绍sharding的架构和几个基本概念术语。 shard server :shard server可以使一个mongod实例,也可以是replica set。 config sever:为了将指定collection存储在多个shard中,那么就需要个key来进行分割,config server存储各个节点的配置信息。shard key的范围,以及分布情...
MongoDB数据库的replica sets主从复制同...
MongoDB数据库的replica sets主从复制同步设置 MongoDB核心开发工程师 Kristina Chodorow(@kchodorow) 最近在她的博客上表示,她会发表一系列关于MongoDB Replica Sets 相关的文章,向大家详细的进行一次 Replica Sets 的知识培训。其系列文章内容包括下面一些章节: Elections(选举) Creating a set(创建一个r...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……