MongoDB在单机上搭建分片副本集群(windows)
------------------------------
1.安装MongoDB
...
...
------------------------------
2.准备好文件夹


--config:配置文件夹
mkdir F:\work\MongoDB\mongodb\data\mongodb\config20001
mkdir F:\work\MongoDB\mongodb\data\mongodb\config20002
mkdir F:\work\MongoDB\mongodb\data\mongodb\config20003
--shard1:分片1文件夹
mkdir F:\work\MongoDB\mongodb\data\shard37017
mkdir F:\work\MongoDB\mongodb\data\shard37018
mkdir F:\work\MongoDB\mongodb\data\shard37019
--shard2:分片2文件夹
mkdir F:\work\MongoDB\mongodb\data\shard37027
mkdir F:\work\MongoDB\mongodb\data\shard37028
mkdir F:\work\MongoDB\mongodb\data\shard37029
--logs:日志文件夹
mkdir F:\work\MongoDB\mongodb\data\mongodb\logs
------------------------------
3.创建日志文件
f:
cd F:\work\MongoDB\mongodb\data\mongodb\logs
--config servers日志
echo>configsvr_20001.log
echo>configsvr_20002.log
echo>configsvr_20003.log
--mongos servers日志
echo>mongos40004.log
--shard servers shard1分片副本集日志
echo>shard_m11_37017.log
echo>shard_m11_37027.log
echo>shard_m11_37037.log
--shard servers shard2分片副本集日志
echo>shard_m11_37018.log
echo>shard_m11_37028.log
echo>shard_m11_37038.log
------------------------------
4.启动配置进程(config servers)
mongod --configsvr --dbpath F:\work\MongoDB\mongodb\data\mongodb\config20001 --port 20001 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\configsvr_20001.log --logappend
mongod --configsvr --dbpath F:\work\MongoDB\mongodb\data\mongodb\config20002 --port 20002 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\configsvr_20002.log --logappend
mongod --configsvr --dbpath F:\work\MongoDB\mongodb\data\mongodb\config20003 --port 20003 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\configsvr_20003.log --logappend
------------------------------
5.启动路由进程(mongos)
F:\work\MongoDB\mongodb\bin\mongos --configdb 127.0.0.1:20001,127.0.0.1:20002,127.0.0.1:20003 --port 40000 --chunkSize 64 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\mongos40004.log --logappend
------------------------------
6.启动分片进程(shard servers)
--启动shard1副本集
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard1 --port 37017 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37017 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37017.log --logappend
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard1 --port 37027 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37027 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37027.log --logappend
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard1 --port 37037 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37037 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37037.log --logappend
--启动shard2副本集
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard2 --port 37018 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37018 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37018.log --logappend
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard2 --port 37028 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37028 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37028.log --logappend
F:\work\MongoDB\mongodb\bin\mongod --shardsvr --replSet shard2 --port 37038 --dbpath F:\work\MongoDB\mongodb\data\mongodb\shard37038 --oplogSize 2048 --logpath F:\work\MongoDB\mongodb\data\mongodb\logs\shard_m11_37038.log --logappend
------------------------------
7.开始设置分片副本集
--shard1副本集
a.设置第一个分片副本集,必须使用admin数据库,登录命令如下
F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:37017/admin
b.定义副本集配置(priority:被选举为主节点的优先级越大越高;arbiterOnly:仲裁者节点,只投票,不存储及读写)
config = { _id:"shard1",members:[
{_id:0,host:"127.0.0.1:37017",priority:1},
{_id:1,host:"127.0.0.1:37027",priority:2},
{_id:2,host:"127.0.0.1:37037",arbiterOnly:true}
]
}
c.初始化副本集命令
rs.initiate(config)
--shard2副本集
a.设置第二个分片副本集,必须使用admin数据库,登录命令如下
F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:37018/admin
b.定义副本集配置(priority:被选举为主节点的优先级越大越高;arbiterOnly:仲裁者节点,只投票,不存储及读写)
config = { _id:"shard2",members:[
{_id:0,host:"127.0.0.1:37018",priority:1},
{_id:1,host:"127.0.0.1:37028",priority:2},
{_id:2,host:"127.0.0.1:37038",arbiterOnly:true}
]
}
c.初始化副本集命令
rs.initiate(config)
------------------------------
8.检查下副本状态:
F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:37028/admin
rs.status();
------------------------------
9.设置自动分片生效
配置服务器,路由服务器,各个分片服务器,以上操作配置完毕
不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。
a.连接到mongs,并切换到admin
新开命令行,输入:F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:40000/admin
b.串联路由服务器与分配副本集命令
db.runCommand( { addshard :"shard1/127.0.0.1:37017,127.0.0.1:37027,127.0.0.1:37037"});
db.runCommand( { addshard :"shard2/127.0.0.1:37018,127.0.0.1:37028,127.0.0.1:37038"});
------------------------------
10.查看分片服务器配置
db.runCommand({listshards : 1 });
执行结果
mongos> db.runCommand({listshards : 1});
{
"shards": [
{
"_id": "shard1",
"host": "shard1/127.0.0.1:37017,127.0.0.1:37027"
},
{
"_id": "shard2",
"host": "shard2/127.0.0.1:37018,127.0.0.1:37028"
}
],
"ok": 1
}
PS:因为37037、37038是每个分片副本集的仲裁节点,所以在上面结果没有列出来。
查看均衡器,默认是打开的:
sh.getBalancerState();
------------------------------
11.如何让录入的数据自动分片
希望插入数据,数据能够自动分片,那么还需要做如下工作:
连接在mongos上,准备让指定的数据库、指定的集合分片生效。
新开命令行,输入:F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:40000/admin
a.指定分片生效
db.runCommand( { enablesharding:"app"});--app是指定的数据库,随便指定,没有会自建,插入数据才会生效数据库
b.指定数据库里需要分片的集合和片键
db.runCommand( { shardcollection :"app.download",key : {name: 1} } )
app:数据库
download:数据集collection,也就是表
name:表里的分片键
ex.根据name自动分片到 shard1,shard2,shard3 上面去。要这样设置是因为不是所有 mongodb 的数据库和表都需要分片!
------------------------------
12.配置片键
需要进入admin数据库里面去执行配置命令:
新开命令行,输入:F:\work\MongoDB\mongodb\bin\mongo 127.0.0.1:40000/admin
use app
show collections
for(var i = 0;i < 10; i ++){db.download.insert({"name":i})}
--建立索引
db.download.createIndex({"name": "hashed" })
sh.shardCollection("app.download", { "name": "hashed"})
--查看状态
db.stats()
db.download.stats()
关注count信息,及shard1和shard2种的count信息即可知道分片是否成功
--查看sharding分片状态
db.printShardingStatus();
MongoDB在单机上搭建分片副本集群(windows)的更多相关文章
- MongoDB在单机上搭建分片副本集群(windows),版本二
配置可以参考前面一篇 https://www.cnblogs.com/a-horse-mosaic/p/9284010.html 副本集是一组服务器,其中有一个主服务器(primary),用于处理客户 ...
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...
- mongodb3.6集群搭建:分片+副本集
mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置 ...
- 单机简单搭建一个kafka集群(没有进行内核参数和JVM的调优)
1.JDK安装 在我的部署单节点kafka的博客里有相关的方法.(https://www.cnblogs.com/ToBeExpert/p/9789486.html )zookeeper和kafka的 ...
- [原创]在Docker上部署mongodb分片副本集群。
一.安装docker. 请参考:http://www.cnblogs.com/hehexiaoxia/p/6150584.html 二.编写dockerfile. 1.在根目录下创建mongod的do ...
- MongoDB for OPS 03:分片 shard 集群
写在前面的话 上一节的复制集也就是主从能够解决我们高可用和数据安全性问题,但是无法解决我们的性能瓶颈问题.所以针对性能瓶颈,我们需要采用分布式架构,也就是分片集群,sharding cluster! ...
- PC(win10)上搭建 kubernetes + docker 集群环境
最近kubernetes很火,加上我又在寻找适合快速搭建测试环境的方法,kubernetes的理念很适合用于测试环境的搭建. 因此在学习的过程中写下此教程(记录)以供回顾. 0x00 环境准备 0x0 ...
- Nginx + Tomcat 在 Windows7 上搭建负载均衡集群
一.安装Tomcat和Nginx 首先安装两个apache-tomcat-8.0.41,下载地址:http://tomcat.apache.org 并安装一个nginx-1.13.0,下载地址http ...
- centos 7上搭建HDP2.3集群
centos 7上安装 cat /etc/redhat-release
随机推荐
- 论文投稿Cover letter
转自:http://blog.sciencenet.cn/blog-479412-686426.html,感谢分享! 1.第一次投稿Cover letter:主要任务是介绍文章主要创新以及声明没有一稿 ...
- LAMP专业术语的规范书写格式
DIV+CSS(技术) MySQL(数据库) Sphinx(中文分词技术) JavaScript(语言) MySQLi(MySQL数据库连接方式) MongoDB(NoSQL数据库) Ajax(Jav ...
- MongoDB数据库 备份 还原
MongoDB数据库 1.备份用 mongodump 2.还原用 mongorestore 1.备份 @echo offecho 正在备份MongoDB数据库SET mon ...
- Spring Boot学习路线
Spring Boot 学习路线,本文计划根据作者近几年的工作.学习经验,来分析和制定一个学习使用 Spring Boot技术的步骤路线图. SpringBoot是伴随着Spring4.0诞生的: S ...
- mysql:删除表数据drop、truncate和delete的用法
程度从强到弱 1.drop table tb drop将表格直接删除,没有办法找回 2.truncate (table) tb 删除表中的所有数据,不能与where一起使用 ...
- March 23 2017 Week 12 Thursday
A bird is known by its note, and a man by his talk. 闻其声而知鸟,听其言而知人. One of the lessons I learned rece ...
- js数据封装处理
var arr = [ { id: "1", date: "2018-07-27", time: "10:00-12:00", schedu ...
- vue错误提示 Cannot read property 'beforeRouteEnter' of undefined,刷新后跳到首页
vue错误提示 Cannot read property 'beforeRouteEnter' of undefined,刷新后跳到首页 因为vue-router版本太高了,我vue用的是2.3.4, ...
- POJ 3321 Apple Tree 【树状数组+建树】
题目链接:http://poj.org/problem?id=3321 Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submiss ...
- 【洛谷P1272】 重建道路
重建道路 题目链接 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟一的.因此, ...