1. 安装包:mongodb-linux-x86_64-2.6.1.tgz

linux: https://www.mongodb.org/dl/linux/x86_64-amazon?_ga=2.65093806.128540913.1514184367-2061892653.1501032684

windows: https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl?_ga=2.67700753.128540913.1514184367-2061892653.1501032684



2. MongoDB1,MongoDB2,MongoDB3创建相关目录

--分片数据库

mkdir /data/mongodb2610/logs/shardDBLogs

mkdir /data/mongodb2610/db/shardDB

mkdir /data/mongodb2610/config/shardDBConfig



mkdir /data/mongodb2610/db/shardDB/shard_1

mkdir /data/mongodb2610/db/shardDB/shard_2

mkdir /data/mongodb2610/db/shardDB/shard_3





--config数据库

mkdir /data/mongodb2610/logs/configDBLogs

mkdir /data/mongodb2610/db/configDB

mkdir /data/mongodb2610/config/configDBConfig





--mongos路由

mkdir /data/mongodb2610/logs/routeDBLogs

mkdir /data/mongodb2610/config/routeDBConfig





3. 创建配置文件

--shard_1.cfg

dbpath=/data/mongodb2610/db/shardDB/shard_1

logpath=/data/mongodb2610/logs/shardDBLogs/shard_1.log

logappend=true

fork=true

port=27021

nohttpinterface=true

replSet=rs_shard_1

shardsvr=true





--shard_2.cfg

dbpath=/data/mongodb2610/db/shardDB/shard_2

logpath=/data/mongodb2610/logs/shardDBLogs/shard_2.log

logappend=true

fork=true

port=27022

nohttpinterface=true

replSet=rs_shard_2

shardsvr=true





--shard_3.cfg

dbpath=/data/mongodb2610/db/shardDB/shard_3

logpath=/data/mongodb2610/logs/shardDBLogs/shard_3.log

logappend=true

fork=true

port=27023

nohttpinterface=true

replSet=rs_shard_3

shardsvr=true



--configDB.cfg

dbpath=/data/mongodb2610/db/configDB

logpath=/data/mongodb2610/logs/configDBLogs/configDB.log

logappend=true

fork=true

port=27100

nohttpinterface=true

configsvr=true







--routeDB.cfg

logpath=/data/mongodb2610/logs/routeDBLogs/routeDB.log

logappend=true

fork=true

port=27017

nohttpinterface=true

chunkSize=1

configdb=192.168.10.146:27100,192.168.10.147:27100,192.168.10.148:27100





db.logs_newcheckout.find({"timestamp":{$gte: new Date('2017/12/01 00:00:00'),$lt: new Date('2017/12/15 00:00:00')}})

db.logs_MyAccount.find({"timestamp":{$gte: new Date('2017/12/01 00:00:00'),$lt: new Date('2017/12/15 00:00:00')}})



4. 配置复制集

/mongodb2610/bin/mongod -f /data/mongodb2610/config/shardDBConfig/shard_1.cfg

/mongodb2610/bin/mongod -f /data/mongodb2610/config/shardDBConfig/shard_2.cfg

/mongodb2610/bin/mongod -f /data/mongodb2610/config/shardDBConfig/shard_3.cfg





--MongoDB1

/mongodb2610/bin/mongo --port 27021





config = {_id: 'rs_shard_1', members: [

{_id: 0, host: '192.168.10.146:27021'},

{_id: 1, host: '192.168.10.147:27021'},

{_id: 2, host: '192.168.10.148:27021',arbiterOnly:true}]

}

rs.initiate(config)





--MongoDB2

/mongodb2610/bin/mongo --port 27022





config = {_id: 'rs_shard_2', members: [

{_id: 2, host: '192.168.10.146:27022',arbiterOnly:true},

{_id: 0, host: '192.168.10.147:27022'},

{_id: 1, host: '192.168.10.148:27022'}]

}

rs.initiate(config)





--MongoDB3

/mongodb2610/bin/mongo --port 27023





config = {_id: 'rs_shard_3', members: [

{_id: 0, host: '192.168.10.148:27023'},

{_id: 2, host: '192.168.10.147:27023',arbiterOnly:true},

{_id: 1, host: '192.168.10.146:27023'}]

}

rs.initiate(config)







5. 配置分片

/mongodb2610/bin/mongod -f /data/mongodb2610/config/configDBConfig/configDB.cfg

/mongodb2610/bin/mongos -f /data/mongodb2610/config/routeDBConfig/routeDB.cfg





---任意mongos执行

/mongodb2610/bin/mongo --port 27017

use admin

db.runCommand({addshard:"rs_shard_1/192.168.10.146:27021,192.168.10.147:27021,192.168.10.148:27021"});

db.runCommand({addshard:"rs_shard_2/192.168.10.146:27022,192.168.10.147:27022,192.168.10.148:27022"});

db.runCommand({addshard:"rs_shard_3/192.168.10.146:27023,192.168.10.147:27023,192.168.10.148:27023"});





6. 启用分片

--对数据库

db.runCommand( { enablesharding :"testdb"});