【双机配置】

服务端:

    两台 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 27017

从服:

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

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

 

运行效果如图:

主服:

【MongoDB】 windows下建立双机主从

启动成功

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

 

接下来是从服:

【MongoDB】 windows下建立双机主从

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

【启动主备服务】

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

【MongoDB】 windows下建立双机主从

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

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

【MongoDB】 windows下建立双机主从

等了挺久,突然好了。

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

 

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

【MongoDB】 windows下建立双机主从

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

 

【同步测试】

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

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

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

【MongoDB】 windows下建立双机主从

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

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

【MongoDB】 windows下建立双机主从

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

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

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

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

 

【待解决】

最后遇到一些问题:

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

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

 

相关文章:

  • 2021-05-17
  • 2021-08-21
  • 2022-12-23
  • 2021-08-25
  • 2021-05-31
  • 2021-10-21
  • 2022-12-23
  • 2021-08-02
猜你喜欢
  • 2021-09-13
  • 2021-05-27
  • 2021-10-05
  • 2021-09-03
相关资源
相似解决方案