【双机配置】

服务端:

    两台 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. htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

    李姐姐之前跟我们分享了子域名枚举工具subDomainBrute<subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本>,这回带给我们htpwdScan ht ...

  2. git的配置设置

    git的基本配置 git是一个版本控制工具,既然是工具,那么就可以根据人的个人喜好来进行设置,git也提供了配置,可以根据自己的喜好来对它进行个性化的设计,以让自己舒服的玩. git有三个配置文件 / ...

  3. gorpeln的个人博客 - gorpeln

    2019-10-18    App Store 审核指南 2019-10-03    锚点跳转距离顶部指定距离 2019-09-23    Jekyll 简单加密 (pwd=123456) 2019- ...

  4. Laravel 学习笔记之文件上传

    自定义添加磁盘——upload 位置:config/filesystems.php 'disks' => [ 'local' => [ 'driver' => 'local', 'r ...

  5. 2018 Web 开发者路线图[转载]

    2018 Web 开发者路线图[转载] https://qianduan.group/posts/5a66f36e0cf6b624d2239c74?hmsr=toutiao.io&utm_me ...

  6. 使用Tensorflow搭建回归预测模型之二:数据准备与预处理

    前言: 在前一篇中,已经搭建好了Tensorflow环境,本文将介绍如何准备数据与预处理数据. 正文: 在机器学习中,数据是非常关键的一个环节,在模型训练前对数据进行准备也预处理是非常必要的. 一.数 ...

  7. Educational Codeforces Round 55 (Rated for Div. 2) D. Maximum Diameter Graph (构造图)

    D. Maximum Diameter Graph time limit per test2 seconds memory limit per test256 megabytes inputstand ...

  8. CPU指令重排序与MESI缓存一致性

    一.重排序场景 class ResortDemo { int a = 0; boolean flag = false; public void writer() { a = 1; //1 flag = ...

  9. thinkphp5.0.19 表单令牌

    助手函数token() [F:\phpStudy\WWW\csweb\thinkphp\helper.php] request类token()方法 [F:\phpStudy\WWW\csweb\thi ...

  10. vue token 过期处理

    1.登陆成功后储存token  可以利用 vuex 储存token 2.利用路由守卫处理 router.beforeEach((to, from, next) => {   })     3.我 ...