龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > nosql开发 >

【转】mongodb Replica Sets +Sharding高可用集群搭建(含认证)(2)

时间:2014-05-22 15:53来源:网络整理 作者:网络 点击:
分享到:
在serverC上: mongos -fork -- logpath /data /mongo/route/log/mongo.log  --configdb ServerA:27018,ServerB:27018,ServerC:27018 --port 27017  5、配置Shard Cluster: 连接任一mongos进程执行以

  在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

精彩图集

赞助商链接