上一篇简单的记录了一下本人的学习笔记,下面描述的是如何配置分片和主从副本集。
配置一个config存储数据库
mongod --port 27100 --dbpath=C:\data\shard\config --logpath=C:\data\shard\log\config.log --logappend --configsvr若多config服务器则–configdb后的地址端口列表以逗号隔开
mongos --port 40000 --configdb localhost:27100 --logpath=C:\data\shard\log\route.log --chunkSize 500以admin身份登录route路由服务器
//登录route的shell mongo admin --port 40000; //添加分片,若分片有副本等,需用逗号隔开 db.runCommand({addshard:"localhost:27001"}); db.runCommand({addshard:"localhost:27002"}); //选择分片db db.runCommand({enablesharding:"xx"}); //设置xx库user集合分片键 db.runCommand({"shardcollection":"xx.user","key":{"_id":1}})查看分片服务器配置
db.runCommand( { listshards : 1 } );主机master:
–replSet指定副本集rs0 mongod --port 27003 --dbpath=C:\data\shard\s3 --logpath=C:\data\shard\log\s3.log --logappend --replSet rs0从机slave:
–replSet指定副本集rs0 mongod --port 27004 --dbpath=C:\data\shard\s3-slaver --logpath=C:\data\shard\log\s3-slaver.log --logappend --replSet rs0仲裁机:
仲裁机不存储主从机存储的数据,仅用于在主机挂掉以后,从从机集中选举出新的主机 mongod --port 27005 --dbpath=C:\data\shard\s3-zc --logpath=C:\data\shard\log\s3-zc.log --logappend --replSet rs0连接主机master:
当master挂掉后,仲裁机会根据投票选举出新的master,启动时priority大者成为master mongo --port 27003 //config设置副本集 config = {_id:"rs0",members:[{_id:0,host:"127.0.0.1:27003",priority:4},{_id:1,host:"127.0.0.1:27004",priority:2},{_id:2,host:"127.0.0.1:27005",arbiterOnly:true}]} //init副本集,使生效 rs.initiate(config)连接slave:
//连接 mongo --port 27004 //slave需要执行slaveOk才能读取数据 rs.slaveOk()