生产环境MongoDB 分片与集群 方案
一、 mongodb分片与集群拓扑图

二、分片与集群的部署
1.Mongodb的安装
分别在以上3台服务器安装好mongodb
安装方法见安装脚本。
2.Mongod 创建单个分片的副本集
10.68.4.209
①建立数据文件夹和日志文件夹
mdkir /data/{master,slave,arbiter}
mkdir /data/log/mongodb/{master,slave,arbiter}? -p
②建立配置文件
#master.conf
dbpath=/data/master
logpath=/data/log/mongodb/master/mongodb.log
pidfilepath=/var/run/mongo_master.pid
#directoryperdb=true
logappend=true
replSet=policydb
port=10002
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
?
#slave.conf
dbpath=/data/slave
logpath=/data/log/mongodb/slave/mongodb.log
pidfilepath=/var/run/mongo_slave.pid
#directoryperdb=true
logappend=true
replSet=policydb
port=10001
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
?
#arbiter.conf
dbpath=/data/arbiter
logpath=/data/log/mongodb/arbiter/mongodb.log
pidfilepath=/var/run/mongo_arbiter.pid
#directoryperdb=true
logappend=true
replSet=policydb
port=10000
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
③启动mongodb
/etc/init.d/mongodb_master start
/etc/init.d/mongodb_slave? start
/etc/init.d/mongodb_arbiter start
④配置主、备、仲裁节点
主节点:
# /usr/local/mongodb/bin/mongo? 10.68.4.209:10002
MongoDB shell version: 2.4.9
connecting to: 10.68.4.209:10002/test
> use admin
switched to db admin
>config={ _id:"policydb", members:[ {_id:0,host:'10.68.4.209:10002',priority:2}, {_id:1,host:'10.68.4.209:10001',priority:1},?
... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };
{
? ? ? ? "_id" : "policydb",
? ? ? ? "members" : [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "_id" : 0,
? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10002",
? ? ? ? ? ? ? ? ? ? ? ? "priority" : 2
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "_id" : 1,
? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10001",
? ? ? ? ? ? ? ? ? ? ? ? "priority" : 1
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? "_id" : 2,
? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10000",
? ? ? ? ? ? ? ? ? ? ? ? "arbiterOnly" : true
? ? ? ? ? ? ? ? }
? ? ? ? ]
}
rs.initiate(config)? #初始化
rs.status()? #查看集群状态
?
10.68.4.29
①建立数据文件夹和日志文件夹
mdkir /data/{master,slave,arbiter}
mkdir /data/log/mongodb/{master,slave,arbiter}? -p
②建立配置文件
#master.conf
dbpath=/data/master
logpath=/data/log/mongodb/master/mongodb.log
pidfilepath=/var/run/mongo_master.pid
#directoryperdb=true
logappend=true
replSet=policydb2
port=10002
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
?
#slave.conf
dbpath=/data/slave
logpath=/data/log/mongodb/slave/mongodb.log
pidfilepath=/var/run/mongo_slave.pid
#directoryperdb=true
logappend=true
replSet=policydb2
port=10001
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
?
#arbiter.conf
dbpath=/data/arbiter
logpath=/data/log/mongodb/arbiter/mongodb.log
pidfilepath=/var/run/mongo_arbiter.pid
#directoryperdb=true
logappend=true
replSet=policydb2
port=10000
oplogSize=10000
fork=true
noprealloc=true
profile=1
slowms=200
③启动mongodb
/etc/init.d/mongodb_master start
/etc/init.d/mongodb_slave? start
/etc/init.d/mongodb_arbiter start
?
④配置主、备、仲裁节点
主节点:
# /usr/local/mongodb/bin/mongo? 10.68.4.209:10002
MongoDB shell version: 2.4.9
connecting to: 10.68.4.209:10002/test
> use admin
switched to db admin
> config={ _id:"policydb2", members:[ {_id:0,host:'10.68.4.29:10002',priority:2}, {_id:1,host:'10.68.4.29:10001',priority:1},?
... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };
{
? ? ? ? "_id" : "policydb",
? ? ? ? "