副本集的配置
1.启动
mongod --dbpath D:\DB\Mongodb\data\replset\r1\
--logpath D:\DB\Mongodb\data\replset\r1\replset.log
--replSet test --logappend --port 10001
mongod --dbpath D:\DB\Mongodb\data\replset\r2\
--logpath D:\DB\Mongodb\data\replset\r2\replset.log
--replSet test --logappend --port 10002
mongod --dbpath D:\DB\Mongodb\data\replset\r3\
--logpath D:\DB\Mongodb\data\replset\r3\replset.log
--replSet test --logappend --port 10003
mongod --dbpath D:\DB\Mongodb\data\replset\r4\
--logpath D:\DB\Mongodb\data\replset\r4\replset.log
--replSet test --logappend --port 10004
2. 配置
config_test = { _id:"test",
members:[ {_id:0,host:"127.0.0.1:10001"},
{_id:1,host:"127.0.0.1:10002"},
{_id:2,host:"127.0.0.1:10003"},
{_id:3,host:"127.0.0.1:10004", arbiterOnly:true}
]
}
rs.initiate(config_test);
执行该命令后,需要等待一些时间(各有不同,根据机器配置)
如果后台配置为完成时连接进去mongo 127.0.0.1:10001, 状态可能是STARTUP2(主节点)
或者是RECOVERING(从节点和仲裁节点), 这个时候只需要等待即可,如果等待很久(超过1小时),
可以考虑重新启动主节点.
如果在从节点想读取数据, 需要在从节点执行db.getMongo().setSlaveOk();
停掉master, 会自动在该副本集中选取一台为主节点, 重新启动master节点,
又会恢复master身份
集群的配置
配置方案:
1、3个分片sharding
2、每一个分片由3个节点构成1主2备的Replica Sets
3、3个配置节点Configsever
4、1个路由节点Mongos
5、提前准备(提前规划和创建好数据文件目录以及日志文件,如果涉及到数据/日志迁移,最好提前想好如何设置)
1. 创建分片和复制集
分片1
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r1\r1.log --logappend --port 10001 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r2\r2.log --logappend --port 10002 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r3\r3.log --logappend --port 10003 --shardsvr --replSet set1 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:10001执行脚本
config = {"_id": "set1","members": [{"_id": 0,"host": "127.0.0.1:10001"},{"_id": 1,"host": "127.0.0.1:10002"},{"_id": 2,"host": "127.0.0.1:10003"}]}
rs.initiate(config);
分片2
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 20001 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 20002 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r3\r3.log --logappend --port 20003 --shardsvr --replSet set2 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:20001执行脚本
config = {"_id": "set2","members": [{"_id": 0,"host": "127.0.0.1:20001"},{"_id": 1,"host": "127.0.0.1:20002"},{"_id": 2,"host": "127.0.0.1:20003"}]}
rs.initiate(config);
分片3
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 30001 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 30002 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r3\r3.log --logappend --port 30003 --shardsvr --replSet set3 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:30001执行脚本
config = {"_id": "set3","members": [{"_id": 0,"host": "127.0.0.1:30001"},{"_id": 1,"host": "127.0.0.1:30002"},{"_id": 2,"host": "127.0.0.1:30003"}]}
rs.initiate(config);
2. 启动三个配置服务节点Configsvr
mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r1\r1.log --logappend --port 40001 --configsvr --shardsvr
mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r2\r2.log --logappend --port 40002 --configsvr --shardsvr
mongod --dbpath D:\DB\Mongodb\data\cluster\configsvr\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\configsvr\r3\r3.log --logappend --port 40003 --configsvr --shardsvr
3. 启动一个路由节点mongos
mongos --configdb 127.0.0.1:40001,127.0.0.1:40002,127.0.0.1:40003 --logpath D:\DB\Mongodb\data\cluster\logs\mongos\mongos.log --logappend --port 50001
4. 配置分片
连接到该路由节点mongos mongo 127.0.0.1:50001
执行如下命令
db.runCommand({addshard:"set1/127.0.0.1:10001,127.0.0.1:10002,127.0.0.1:10003",name:"ShardSet1"})
db.runCommand({addshard:"set2/127.0.0.1:20001,127.0.0.1:20002,127.0.0.1:20003",name:"ShardSet2"})
db.runCommand({addshard:"set3/127.0.0.1:30001,127.0.0.1:30002,127.0.0.1:30003",name:"ShardSet3"})
配置结束
执行 printShardingStatus()可以查看配置结果
如果看到以下结果则表示配置成功
mongos> printShardingStatus();
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 3,
"minCompatibleVersion" : 3,
"currentVersion" : 4,
"clusterId" : ObjectId("53070a99c802a74f3c3496f7")
}
shards:
{ "_id" : "ShardSetA", "host" : "setA/127.0.0.1:10001,127.0.0.1:10002,
127.0.0.1:10003" }
{ "_id" : "ShardSetB", "host" : "setB/127.0.0.1:20001,127.0.0.1:20002,
127.0.0.1:20003" }
{ "_id" : "ShardSetC", "host" : "setC/127.0.0.1:30001,127.0.0.1:30002,
127.0.0.1:30003" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : false, "primary" : "ShardSetC" }
相关文章
- 09-23转载:同一台电脑教你配置多个Tomcat的环境变量
- 09-23同一个sshkey用在多台电脑上
- 09-23在一台电脑上,Git 生成多个key值。在GitHub配置多仓库的Deploy keys
- 09-23Druid 集群方式部署 —— 从独立服务器部署上合并到集群的硬件配置
- 09-23bitbucket/github同一站点上多个git代码仓库的ssh-key配置
- 09-23一台电脑上配置多个JDK的问题
- 09-23《《《在同一台服务器上配置多个Tomcat
- 09-23两个不同版本的tomcat,在一台电脑上共存的相关配置
- 09-23如何在一台新电脑上配置JAVA开发环境
- 09-23简易搭建git仓库、关联远程和本地仓库方法。克隆仓库方法。同一台电脑上创建两个git ssh key方法。