【转】mongodb Replica Sets +Sharding高可用集群搭建(含认证)(2)
在serverC上:mongos -fork --
logpath /data
/mongo/route/log/mongo.log
--configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017
5、配置Shard Cluster:
连接任一mongos进程执行以下命令:
use admin
db.runCommand({addShard:"shard1/serverA:27020,serverB:27020,serverC:27020"})
db.runCommand({addShard:"shard2/serverA:27021,serverB:27021,serverC:27021"})
db.printShardingStatus()
6、激活数据库及集合的分片功能:
连接任一mongos进程执行以下命令:
db.runCommand({enablesharding:"testdb"})
db.runCommand({shardcollection:"testdb.collection_test",key:{_id:1}})
7、登录mongos添加用户:
use admin
db.addUser("<user>","<password>")
db.addUser("<user>","<password>",true) //添加只读用户
8、关闭三台机器的全部mongod,mongos:
sudo killall mongod
sudo killall mongos
9、生成keyfile:(每个进程的key file都保持一致)
openssl rand -base64 753 >keyfile
将生成的keyfile 拷贝到mongod/mongos 进程对应的文件夹
并执行语句更改权限:sudo chmod 600 keyfile
使用--keyFile参数指定前面生成的keyfile文件,重启三台机器全部mongod,mongos进程
在serverA上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_1/db --logpath=/data/mongo/s1_1/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_1/keyfile
在serverB上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_2/db --logpath=/data/mongo/s1_2/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_2/keyfile
在serverC上:mongod --replSet s1 --port 27020 --dbpath=/data/mongo/s1_3/db --logpath=/data/mongo/s1_3/log/mongo.log --logappend --fork --keyFile /data/mongo/s1_3/keyfile
在serverA上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_1/db --logpath=/data/mongo/s2_1/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_1/keyfile
在serverB上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_2/db --logpath=/data/mongo/s2_2/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_2/keyfile
在serverC上:mongod --replSet s2 --port 27021 --dbpath=/data/mongo/s2_3/db --logpath=/data/mongo/s2_3/log/mongo.log --logappend --fork --keyFile /data/mongo/s2_3/keyfile
在serverA上:mongod -fork --configsvr --dbpath /
data
/mongo/config/db --port 27018 --logpath /
data
/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
在serverB上:mongod -fork --configsvr --dbpath /
data
/mongo/config/db --port 27018 --logpath /
data
/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
在serverC上:mongod -fork --configsvr --dbpath /
data
/mongo/config/db --port 27018 --logpath /
data
/mongo/config/log/mongo.log --fork --keyFile /data/mongo/config/keyfile
在serverA上:mongos -fork --logpath /data
/mongo/route/log/mongo.log --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
在serverB上:mongos -fork --
logpath /data
/mongo/route/log/mongo.log
--configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
在serverC上:mongos -fork --
logpath /data
/mongo/route/log/mongo.log
--configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017 --keyFile /data/mongo/route/keyfile
完毕!
转自 http://www.cnblogs.com/ylh1223/archive/2013/04/23/3037301.html