在windows环境下配置mongoDB集群

mongodb官网

官网分片文档

首先感谢这次参考的文章:

mongodb搭建高可用分片集群示例-天才卧龙

MongoDB高可用集群搭建示例-lizh

配置中用到端口划分汇总:

(本次配置一共用了2个mongos、3个confiigserver、3个shard)

mongosR1(端口:27019) mongosR2(端口:27029)
configR1(端口:27018) configR2(端口:27028) configR3(端口:27038)
Shard1R1(端口:27011) Shard1R2(端口:27021) Shard1R3(端口:27031)

这是这次配置所需要用到的端口

配置的过程:

1. 新建文件加存放mongodb集群所需配置文件和数据

2. 在每个config文件夹中新建所需文件

3. 在 config.conf里编写配置内容
net:port: 27018  #config1的端口27018  config2为27028  config3为27038bindIp: 0.0.0.0  #允许连接地址,这里统一设置为允许任何ip连接
systemLog:destination: filelogAppend: truepath: D:\developTool\mongodb\mongoCluster\configR1\log\config.log  #config的日志存储地址,config2和config3修改路径即可
storage:dbPath: D:\developTool\mongodb\mongoCluster\configR1\data #config的数据存储地址,config2和config3修改路径即可journal:enabled: true #数据故障恢复和持久化,肯定是开启
#processManagement:
#  fork: true    #linux下打开此设置,Windows环境下后台启动需要注册服务,
#  pidFilePath: /mongo/config/run/mongod.pid
#副本集名称设置
replication:replSetName: configs
#分片集群角色,配置服务器的固定值
sharding:clusterRole: configsvr
#这里是集群安全认证配置,首次配置启动集群不打开此配置,先留着,后面再说
#security: #keyFile: #authorization: enabled
4. configR2、R3的配置一样,只是端口和路径进行修改
5. 新建shard文件夹以及目录下的文件


(shardR1下新建shard1,因为一个shard没有做分片处理,如果后续做分片处理可以新建shard2、3等等)

(shard1下新建data、log文件以及shard.conf配置文件)

6. 在shard.conf里写配置内容(shardR2和shardR3下的shard1同理配置,修改端口和路径即可)
net:port: 27011   #shard1的端口27011 ,shard2端口27021 ,shard2端口27031bindIp: 0.0.0.0
systemLog:destination: filelogAppend: truepath: D:\developTool\mongodb\mongoCluster\shardR1\shard1\log\shard.log #shard1R1的路径,shard1R2和shard1R3做对应修改即可
storage:dbPath: D:\developTool\mongodb\mongoCluster\shardR1\shard1\data #shard1R1的路径,shard1R2和shard1R3做对应修改即可journal:enabled: true
#processManagement:
#  fork: true
#  pidFilePath: /mongo/shard1/run/mongod.pid
replication:replSetName: shard1
sharding:clusterRole: shardsvr #集群中角色归属
7. 再mongosR1下新建文件以及配置文件

8. 在mongos.conf里编写配置
systemLog:destination: filelogAppend: truepath:  D:\developTool\mongodb\mongoCluster\mongosR1\log\mongos.log #mongos没有数据存储地址,只有日志输出地址,mongosR2下做对应的地址调整
# network interfaces
net:port: 27019 # mongosR1的端口,mongosR2为27029bindIp: 0.0.0.0
setParameter:enableLocalhostAuthBypass: false
#注意!此处配置的连接地址为配置服务器config Serve的副本集名称和所在服务器地址以及端口
sharding:configDB: configs/127.0.0.1:27018,127.0.0.1:27028,127.0.0.1:27038
9. 启动服务,分片集群启动时一定要按照config server,shard ,mongos的顺序启动

在安装mongodb的bin目录下启动dos命令:

./mongod -f D:\developTool\mongodb\mongoCluster\configR1\config.conf

(1) 启动完成之后新打开一个dos窗口进入一台configserver
./mongo -host 127.0.0.1  --port 27018
(2) 进入之后在dos界面配置配置器的服务集:
config = {  _id : "configs",
members : [
{_id : 0, host : "127.0.0.1:27018" },
{_id : 1, host : "127.0.0.1:27028" },
{_id : 2, host : "127.0.0.1:27038" }
]  }
(3) 初始化副本集:
rs.initiate(config)
(4) 查看副本集状态:
rs.status()


(执行完成之后对应data文件下会产生文件)

10.
(1) 在开启三个dos窗口分别启动shardR1的shard1、shardR2的shard1和shardR3的shard1
./mongod -f D:\developTool\mongodb\mongoCluster\shardR1\shard1\shard.conf
./mongod -f D:\developTool\mongodb\mongoCluster\shardR2\shard1\shard.conf
./mongod -f D:\developTool\mongodb\mongoCluster\shardR3\shard1\shard.conf

(2) 打开新的dos窗口连接shardR1
./mongo --port 27011
(3) 配置shard1的副本集:
config = { _id : "shard1",
members : [
{_id : 0, host : "127.0.0.1:27011"},
{_id : 1, host : "127.0.0.1:27021"},
{_id : 2, host : "127.0.0.1:27031"}
] }
(4) 初始化副本集:
rs.initiate(config);

11.
(1) 分别打开三个新的dos窗口启动前端路由器mongosR1,mongosR2
./mongos -f D:\developTool\mongodb\mongoCluster\mongosR1\mongos.conf
./mongos -f D:\developTool\mongodb\mongoCluster\mongosR2\mongos.conf
(2) 新开一个dos窗口:连接任意一个mongos
./mongo --port 27019
(3) 使用admin库,启用集群分片,创建用户
use admin;sh.addShard("shard1/127.0.0.1:27011,127.0.0.1:27021,127.0.0.1:27031");db.createUser( { user: "admin", pwd: "Zaq12wsx", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
(4) 关闭当前mongos 连接,重连如下:
./mongo --port 27019 -u "admin" -p "Zaq12wsx" --authenticationDatabase "admin"#设置一下chunk的大小:use config;#设置块大小为1M是方便实验,不然需要插入海量数据db.setting.save({"_id":"chunksize","value":1})#cda配置use cda;#启用数据库分片sh.enableSharding("cda")#创建集合db.createCollection("cdaDocLibMongo");#以" uuid "作哈希索引分片键db.cdaDocLibMongo.createIndex({"uuid":"hashed"})#对cdaDocLibMongo集合启用分片sh.shardCollection( " cda.cdaDocLibMongo", { " uuid " : "hashed" } ) # 查看分片情况sh.status() # 查看分片列表,所有分片db.runCommand({listShards:1})  use config;# 查询当前块大小db.settings.find({"_id":"chunksize"})# 修改块大小db.settings.save( { _id:"chunksize", value: 64 } );

到此总共开启了8个服务(configserver3 、shard3 、mongos*2)

启动顺序一定要按照configserver、shard、mongos顺序启动

在windows环境下配置mongoDB集群相关推荐

  1. Windows环境下redis的集群部署

    一.软件环境&工具 1.  windows7 2.  Redis-x64-3.2.100.msi 安装包 redis-win-3.2.100.zip代码包 下载地址:https://githu ...

  2. windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...

    windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...

  3. aix oracle集群日志,在AIX环境下实施Oracle 集群RAC的结构 文平

    <oracle大型数据库系统在AIX/unix上的实战详解>集中讨论34:在AIX环境下实施Oracle 集群RAC的结构   文平 看来能用的起IBM p服务器的用户,都能用的起RAC. ...

  4. 0110-如何给Kerberos环境下的CDH集群添加Gateway节点

    2019独角兽企业重金招聘Python工程师标准>>> Fayson的github: https://github.com/fayson/cdhproject 1.文档编写目的 Ga ...

  5. 多云环境下部署 k3s 集群

    多云环境下部署 k3s 集群 最近在玩k3s,刚好手上有三台云服务器(白嫖的一年亚马逊,双11买的腾讯云,朋友的阿里云),尝试跨云厂商搭建k3s集群玩玩 一.基础配置 服务器信息 系统 公网IP 内网 ...

  6. 阿里云环境下搭建HadoopHA集群

    阿里云环境下搭建HadoopHA集群 1. HadoopHA介绍 1.1 hadoop高可用集群的简介 ​ hadoop是一个海量数据存储和计算的平台,能够存储PB级以上的数据,并且利用MapRedu ...

  7. Windows环境下配置环境变量

    安装好MySQL后,在Windows环境下配置环境变量 1)新建MYSQL_HOME系统变量 配置MySQL的安装路径:C:\Program Files\MySQL\MySQL Server 8.0 ...

  8. 如何在 Windows 环境下配置 PHP 开发运行环境

    我们都知道 PHP 运行需要的环境通常被称为 AMP. 其中 A 是 Apache 应用服务器,M 是 Mysql,P 就是 PHP 了. 实际上,很多人可能会使用一个测试 Mysql,但是针对一些小 ...

  9. Windows环境下配置Ceres(带suitesparse-metis)

    1 配置环境与源代码包 环境 Windows>=8.1 Visual Studio>=2013 专业版x64 Cmake GUI>=3.13 Ceres-solver 1.14.0 ...

最新文章

  1. python报错:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any(
  2. node windows更新_node.js 01 简介 - 产生,发展历程,优势,适用场景,实际应用
  3. python爬取股票大单历史记录_利用bs4爬取股票的历史交易数据
  4. C++,Java编程中 标识符 常见命名约定
  5. 简单了解linux,linux简单了解
  6. 借力信息化工具,助跑精细化管理
  7. 估值飙至 280 亿美元,Databricks G 轮融资 10 亿美元,谁说开源不挣钱?
  8. RDKit 安装教程
  9. android第三方好用,有哪些好用的安卓ROM值得推荐?安卓端最好的第三方ROM介绍...
  10. Latex系列[2]--公式中的字体
  11. 设随机过程{X(t)=Acos(ωt+Θ),t∈(一∞,+∞)},其中A,ω,Θ为相互独立的实随机变量,其中A的均值为2,方差为4,且Θ~U(-π,π),ω~U(-5,5),试问X(t)是否为平稳过程
  12. 使用BeautifulSoup,解释器报错‘lxml‘
  13. 网站性能优化之DNS Prefetch
  14. nltk.stem.WordNetLemmatizer()时报错BadZipFile(“File is not a zip file“)的解决方法
  15. 小程序中实现待办功能
  16. linux服务器无法识别u盘,linux系统下不能识别U盘
  17. 2010-2020管理类联考MBA/MEM英语大作文范文模版
  18. 南加州计算机博士学几年,2020年南加州大学读博要多久
  19. Opencv-Python学习(一)———图像的基本操作
  20. win10彻底删除Ubuntu EFI分区及启动项

热门文章

  1. Day8:财报分析3:为什么自由现金流如此重要?
  2. python编程100例体育课排队-浅析材料化学在生活中的应用
  3. 虚拟化运维监测管理系统云安成为混合工作时代的 VDI
  4. vue - - - - vite创建vue3项目(不使用TS)
  5. 基于ThinkPHP5 使用QueryList爬取 并存入mysql数据库
  6. 角色编辑功能,权限中转英,遍历出code 在一条一条把数据塞回去
  7. TensorFlow2使用AutoGraph时出现关于gast的一个warning
  8. android10 隐藏SystemUI锁屏下的多用户图标
  9. echart-面积图
  10. 解决Redis报错Redis is configured to save RDB snapshots, but it is currently not able to persist on disk