【双机配置】

服务端:

    两台 Dell R730 双路E5 服务器

    使用一个内网环境,网段20, ping 测试互通

    主服ip: 192.168.20.176: 27017

    从服ip: 192.168.20.178: 27015

客户端: ThinkPad T460P

【系统环境】

服务端: windows Server 2012 R2

客户端: Win10

MongoDB版本 3.2.10

【文件夹建立】

双机主从配置建议将双机的文件夹配置保持一致,但是对mongoDB的配置来讲这个可以不那么重视。

花了5分钟学习,发现其实就是给定一个时间从机向主机请求同步而已。同步的内部机制等空一点研究源码。

这里我的文件夹建立是 D:\Mongos\ 作为整个MongoDB的根目录,数据目录暂时也放在这下。

数据目录: .\DB\   主服的数据放在这文件夹下 .\Master , 从服的数据对应为  .\Slave

日志在 .\Log\下

【脚本和运行效果】

mongoDB的配置脚本非常简单,这里给出命令即可

先来主服的, 务必使用 --master进行标记。

.\Mongod.exe --dbpath [your path] --master -- port 

从服:

.\mongod.exe --slave --dbpath [your Path] --source 192.168.20.176 --port  --slavedelay 

其中 slavedelay指定从服每多少秒执行一次同步。

运行效果如图:

主服:

启动成功

需要说明一下,最下面一条信息是从服启动后建立了到主服的连接,所以有一个Connection accepted。

接下来是从服:

可以看到最下面一组红框的信息是每5s出现一次,代表在同步主服的信息。

【启动主备服务】

主服上运行 mongo.exe, 自动连接到 test, 这个和单机是一样的。

等了很久,没有看到mongo shell出现,说明启动没成功。

据说第一次启动很慢,不知道是有多慢

等了挺久,突然好了。

之前几个客户端都没法访问到,下次测试一下什么原因。

从服上同样启动mongo.exe,不过要指定一下从服的端口,即27015

这里是为了测试同步是否成功,所以访问本地的test。

【同步测试】

写数据的一方从客户端(ThinkPad上)操作,然后分别在两个服务器客户端上读一次看是否同步。
为了便于区分,在一次写操作后先读一次从服,5s后再读一次。

客户端的写操作对主服进行。

插入操作很简单,我们在test下操作即可 【该命令由客户端发送】

可以看到查询结果是正确的。

我们在从服上执行find()命令:

可以看到之前是报错了的。

实际上主从模式下,从服仅仅作为备份,是不允许直接访问和操作的。但是我们可以给从服配置一个读权限,即 rs.slaveOk()

之后就能查询了。 两条记录是因为我在主服下开的客户端也执行了一个查询。

到此可证明主从部署建立成功。

【待解决】

最后遇到一些问题:

按官方说法,我应该是能从客户端(另一台pc)通过指定ip和端口的形式访问从服的,因为从服自己也是这么访问的。

然而我的连接请求却被从服拒绝了,有点奇怪。

【MongoDB】 windows下建立双机主从的更多相关文章

  1. 从Windows转向Linux(在Windows下建立Deepin、Windows10双系统)

    我是19年3月转向使用Linux进行开发,没啥特别的理由,就是觉得使用Linux系统是每个程序员必须经历的吧. 选择版本 一开始,在网上了解到现在流行的Linux发行版有基于Redhat的,还有基于d ...

  2. 在Mac OSX下使用ssh建立隧道(在Windows下建立隧道可以使用putty,其间会用到ppk文件)

    在Windows下建立隧道可以使用putty,其间会用到ppk文件.在Mac OSX下,同样的功能可以用ssh命令实现.具体是: ssh -D 8088 -Nf user@ip -i myppk.ss ...

  3. [转帖]Windows下cwRsyncServer双机连续同步部署

    Windows下cwRsyncServer双机连续同步部署 https://www.cnblogs.com/nulige/p/7607503.html 找时间做一下测试 应该能更好的实现 自动部署的功 ...

  4. centos下建立双机信任关系

    在有些情况下,我们希望在两台centos机器之间建立ssh连接的时候,可以不用输入密码.最常见的情况就是在使用脚本做数据库备份的时候.这种情况下,我们可以通过公钥/私钥来建立双机之间的信任关系. 网上 ...

  5. MongoDB Windows 下安装部署

    下面主要是我在Windows上(Win7)安装.运行.安装Windows服务的笔记,以作备忘. 1.下载 下载地址:http://www.mongodb.org/downloads 从其下载页面就可以 ...

  6. Windows下建立ArcGIS Server集群

    原创文章,转载须标明出处自: http://www.cnblogs.com/gisspace/p/8269525.html -------------------------------------- ...

  7. windows下的Redis主从集群搭建

    Redis官方不提供Windows版本,目前Windows下的版本是有微软开源团队(Microsoft Open Tech group)维护. http://redis.cn/ redis中文网 wi ...

  8. windows下建立文件的换行符^M导致linux下的shell脚本执行错误的解决方式

    常常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M.这将导致shell脚本执行错误,主要是由于dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主 ...

  9. mongodb windows下的安装

    (1)上mongodb的官网下载windows版本的mongo的安装包,安装包是绿色版的解压出来就可以直接使用. (2)将解压出来的bin文件夹复制到c:\mongoDB下(c:\mongoDB这个文 ...

随机推荐

  1. redis持久化机制与过期策略

    RDB的持久化策略 (快照方式,默认持久化方式): 按照规则定时将内存中的数据同步到磁盘,它有以下4个触发场景. 1. 自己配置的快照规则  vim /redis/bin/ redis.conf:按照 ...

  2. go 关键字之 defer

    我是谁 defer - 顾名思义翻译过来叫 延迟, 所以我们通常称呼 defer func() 这样 defer 后面紧跟的函数为 延迟函数. 作者注: 不过从实际应用来讲, 延迟函数通常用来做一些函 ...

  3. P2P技术

    1.什么是P2P技术 点对点技术又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上.P2P网络通常用于通过Ad Hoc连接来连接节点. P ...

  4. ECMAScript 6 学习笔记(一)

    ECMAScript 6简介 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写 ...

  5. Django模板层2

    一.单表操作 1.1 开启test from django.test import TestCase import os # Create your tests here. if __name__ = ...

  6. ASSERT()断言

    头文件<assert.h>   作用:用于判断是否有非法的数据,有则程序报告错误,终止运行.(注意是非法情况,而不是错误情况)   ASSERT()和assert()的区别: ASSERT ...

  7. Spring Boot 支持https

    1. 生成key JDK下 keytool -genkeypair -alias mySSL -keyalg RSA -keystore E:\tomcat.key 其中-alias是证书的别名,RS ...

  8. linux c下的c文件 h文件 o文件 so文件 a文件 可执行文件 gcc使用

    linux下c语言工程: c文件:主要每个模块的原代码都在c文件中. h文件:每个c文件都跟着一个h文件,h文件的作用是放着c文件中函数的声明,结构体的定义,宏的定义等. o文件:目标文件.每个文件经 ...

  9. MySQL安装+更换yum源+mysql密码忘记(2019更新)

    安装mysql步骤:1.yum install mysql-server -y2.service mysqld start3.mysql4.切换数据库 use mysql 查看表 show table ...

  10. C#基础知识之事件和委托

    本文中,我将通过两个范例由浅入深地讲述什么是委托.为什么要使用委托.委托的调用方式.事件的由来..Net Framework中的委托和事件.委托和事件对Observer设计模式的意义,对它们的中间代码 ...