mongodb 副本集+分片

mongodb 副本集+分片


1. 创建用户
groupadd -g 20001 mongodb
useradd -u 20001 -g mongodb mongodb
passwd mongodb


2.拷贝文件并解压
cd /home/richy/Downloads
su mongodb
cp mongodb-linux-i686-2.0.4.tgz /home/mongodb
tar zxvf mongodb-linux-i686-2.0.4.tgz

3.创建目录
Server1:
su – mongodb
rm -rf /home/mongodb/data
cd /home/mongodb
mkdir -p data/shard11
mkdir -p data/shard21

Server2:
su – mongodb
rm -rf /home/mongodb/data
cd /home/mongodb
mkdir -p data/shard12
mkdir -p data/shard22

Server3:
su – mongodb
rm -rf /home/mongodb/data
cd /home/mongodb
mkdir -p data/shard13
mkdir -p data/shard23

检查
ls /home/mongodb/data


配置relica sets

1. 配置shard1所用到的replica sets:
Server1:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongodb/data/shard11 --oplogSize 100 --logpath /home/mongodb/data/shard11.log --logappend --fork

Server2:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongodb/data/shard12 --oplogSize 100 --logpath /home/mongodb/data/shard12.log --logappend --fork

Server3:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard1 --port 27017 --dbpath /home/mongodb/data/shard13 --oplogSize 100 --logpath /home/mongodb/data/shard13.log --logappend --fork


cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongo --port 27017

config = {_id: 'shard1', members: [
                          {_id: 0, host: 'm1:27017'},
                          {_id: 1, host: 'm2:27017'},
                          {_id: 2, host: 'm3:27017'}]
           }

rs.initiate(config);


1. 配置shard2所用到的replica sets:
Server1:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongodb/data/shard21 --oplogSize 100 --logpath /home/mongodb/data/shard21.log --logappend --fork

Server2:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongodb/data/shard22 --oplogSize 100 --logpath /home/mongodb/data/shard22.log --logappend --fork

Server3:
cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongod --shardsvr --replSet shard2 --port 27018 --dbpath /home/mongodb/data/shard23 --oplogSize 100 --logpath /home/mongodb/data/shard23.log --logappend --fork


cd /home/mongodb/mongodb-linux-i686-2.0.4/bin
./mongo --port 27018

config = {_id: 'shard2', members: [
                          {_id: 0, host: 'm1:27018'},
                          {_id: 1, host: 'm2:27018'},
                          {_id: 2, host: 'm3:27018'}]
           }

rs.initiate(config);

配置三台config server
在server1,server2,server3上分别执行:
mkdir -p /home/mongodb/data/config
./mongod --configsvr --dbpath /home/mongodb/data/config --port 20000 --logpath /home/mongodb/data/config.log --logappend --fork   #config server也需要dbpath


配置mongs
在server1,server2,server3上分别执行:
./mongos --configdb m1:20000,m2:20000,m3:20000 --port 30000 --chunkSize 5 --logpath /home/mongodb/data/mongos.log --logappend --fork
#mongs不需要dbpath


Configuring the Shard Cluster

连接到其中一个mongos进程,并切换到admin数据库做以下配置
1. 连接到mongs,并切换到admin
/home/mongodb/mongodb-linux-i686-2.0.4/bin/mongo m1:30000/admin

db.runCommand( { addshard : "shard1/m1:27017,m2:27017,m3:27017",name:"s1",maxsize:20480} );
db.runCommand( { addshard : "shard2/m1:27018,m2:27018,m3:27018",name:"s2",maxsize:20480} );

4. Listing shards
db.runCommand( { listshards : 1 } )

5. 激活数据库分片
db.runCommand( { enablesharding : "test"} );

6.分片collection例子
db.runCommand( { shardcollection : "test.c1",key : {id: 1} } )

use test

for (var i =1; i <= 10000; i++) db.c1.save({id:i,value1:"1234567890",value2:"1234567890",value3:"1234567890",value4:"1234567890"});

db.c1.stats()

/home/mongodb/mongodb-linux-i686-2.0.4/bin/mongo --port 27017
rs.status()

/home/mongodb/mongodb-linux-i686-2.0.4/bin/mongo --port 27018
rs.status()

分片命令
1获得概要
db.printShardingStatus()

2删除分片
db.runCommand({"removeshard":"s1"})

删除分片后回复分片
/home/mongodb/mongodb-linux-i686-2.0.4/bin/mongo --port 27017
use test

db.dropDatabase()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值