1. 购买机器
2. 添加DNS解析,处理数据盘。(逻辑卷管理,方便后期扩展)
( pvcreate /dev/vdb
vgcreate mg /dev/vdb
lvcreate -n mglv -L 199G mg
mkfs.ext4 /dev/mg/mglv
mkdir /mongo
设置自动挂载/etc/fstab
)
3. mongo 配置: (128;129;130)
实例配置及启动(128;129;130):
/usr/local/mongo/bin/mongod --configsvr --dbpath /mongo/data --port 27017 --logpath /mongo/logs/mongo.log --fork
启动mongos(128;129;130):
/usr/local/mongo/bin/mongos --configdb 172.16.0.128:27017,172.16.0.129:27017,172.16.0.130:27017 --port 27300 --logpath /mongo/logs/mongos.log --chunkSize 5 --fork
设置分片:
/usr/local/mongo/bin/mongod --shardsvr --replSet shard1 --port 27018 --dbpath /mongo/data/db/27018/ --logpath /mongo/logs/27018_shard1.log --fork --nojournal --oplogSize 10
/usr/local/mongo/bin/mongod --shardsvr --replSet shard2 --port 27019 --dbpath /mongo/data/db/27019/ --logpath /mongo/logs/27019_shard2.log --fork --nojournal --oplogSize 10
/usr/local/mongo/bin/mongod --shardsvr --replSet shard3 --port 27020 --dbpath /mongo/data/db/27020/ --logpath /mongo/logs/27020_shard3.log --fork --nojournal --oplogSize 10
设置分片:
>/usr/local/mongodb/bin/mongo 127.0.0.1:27018
use admin
config = { _id:"shard1", members:[
{_id:0,host:"172.16.0.128:27018"},
{_id:1,host:"172.16.0.129:27018"},
{_id:2,host:"172.16.0.130:27018",arbiterOnly:true}
]
}
rs.initiate(config); //只在初始化的时候运行一次
>/usr/local/mongodb/bin/mongo 127.0.0.1:27019
use admin
config = { _id:"shard2", members:[
{_id:0,host:"172.16.0.128:27019"},
{_id:1,host:"172.16.0.129:27019"},
{_id:2,host:"172.16.0.130:27019",arbiterOnly:true}
]
}
rs.initiate(config); //只在初始化的时候运行一次
>/usr/local/mongodb/bin/mongo 127.0.0.1:27020
use admin
config = { _id:"shard3", members:[
{_id:0,host:"172.16.0.128:27020"},
{_id:1,host:"172.16.0.130:27020"},
{_id:2,host:"172.16.0.129:27020",arbiterOnly:true}
]
}
rs.initiate(config); //只在初始化的时候运行一次
运行分片:(mongos)
db.runCommand( { addshard : "shard1/172.16.0.128:27018,172.16.0.129:27018,172.16.0.130:27018"});
db.runCommand( { addshard : "shard2/172.16.0.128:27019,172.16.0.129:27019,172.16.0.130:27019”});
db.runCommand( { addshard : "shard3/172.16.0.128:27020,172.16.0.129:27020,172.16.0.130:27020”});
#指定testdb分片生效
db.runCommand( { enablesharding :"testdb"});
#指定数据库里需要分片的集合和片键
db.runCommand( { shardcollection : "testdb.table1",key : {id: 1} } )
// 添加认证
db.addUser({ user: "instarx", pwd: "instarx", roles: ["readWrite"] })
验证:
for (var i = 1; i <= 100000; i++)
db.table1.save({id:i,"test1":"testval1"});
mongos> db.table1.stats()