• Windows下本机搭建MongoDB复制集


    Windows下本机搭建MongoDB复制集

    一、新建目录

    打开windows的ctrl+r ,输入poweshell

    输入以下命令,创建三个文件夹:

    md d:datadb1
    md d:datadb2
    md d:datadb3
    

    实际环境上我们应该要搭建在三台不同的机器上(不然搭了白搭),但是现在我们要在一台机器上运行三个进程,因此我们为他们各自设置不同的配置。

    其不同的配置分别为:

    • 不同的端口

      • 这里我们设置端口分别为:28017/28018/28019
    • 不同的数据目录

      • 数据目录为

      • d:datadb1

        d:datadb2
        d:datadb3

    • 不同日志文件路径

      • 日志文件路径为:

        d:datadb1mongod.log

        d:datadb2mongod.log
        d:datadb3mongod.log

    二、写配置文件

    我们来写一个配置文件:

    第一个配置文件如下: d:datadb1mongod.conf

    systemLog:
      destination: file
      path: d:data1mongod.log  #日志文件路径
      logAppend: true
    storage:
      dbPath: d:data1# 数据目录
    net:
      bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
      port: 28017       # 端口
    replication:
      replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点
    

    第二个配置文件如下: d:datadb2mongod.conf

    systemLog:
      destination: file
      path: d:data2mongod.log  #日志文件路径
      logAppend: true
    storage:
      dbPath: d:data2 # 数据目录
    net:
      bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
      port: 28018       # 端口
    replication:
      replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点
    

    第三个配置文件如下: d:datadb3mongod.conf

    systemLog:
      destination: file
      path: d:data3mongod.log  #日志文件路径
      logAppend: true
    storage:
      dbPath: d:data3 # 数据目录
    net:
      bindIp: 0.0.0.0  # mongoDB会在所有的网卡的地址上监听
      port: 28019       # 端口
    replication:
      replSetName: rs0  # 表示当前是复制集,不加的话就表示当前是单节点
    

    运行前请先在D盘建立三个文件夹,分别为data1 data2 data3

    至此,配置文件完成。

    三、运行

    win+r,打开一个新的cmd,输入:

    mongod -f d:data/db1/mongod.conf
    

    输入完之后再新开两个cmd,分别输入

    mongod -f d:datadb2mongod.conf
    mongod -f d:datadb3mongod.conf
    

    注意,在windows中必须新开cmd才可以进行操作。否则进程将直接结束。

    现在我们已经新开了三个数据节点,但是他们此时是彼此独立的。

    四、让他们连起来~!

    现在我们要配置复制集,当前有两个方法。

    首先保证我们的hostname可以被解析:
    输入hostname查看当前主机名

    方法1:

    ​ 在mongo里面设置。

    ​ 在命令行输入

    ​ mongo localhost:28017

    ​ 继续输入:

    ​ rs.initiate()

    ​ 这时我们的输入变成了:

    这表示我们当前节点已经不再是一个单节点,而是一个复制集节点。SECONDARY表示这时一个从节点。

    再按一下回车,

    这表示当前我们的节点已经从Secondary节点变为一个PRIMARY节点。输入rs.status()可以查看属性,其中members属性表示我们当前的复制集有多少个节点。

    现在只有一个,我们往里面添加新的节点。

    ​ 输入:

    ​ rs.add(Sitr2020:28018)

    ​ 可以添加第二个节点。

    同样的,输入以下可以添加第三个节点:

    ​ rs.add(Sitr2020:28019)

    再输入rs.status(),查看属性members,会发现已经多了两个节点。

    现在我们可以验证一下。

    五、验证

    为了更方便地看到效果,我们新开一个powershell查看效果。

    我们打开,输入:

    ​ mongo localhost:28018

    ​ 然后我们试一下往新开的powershell里面输入rs.salveOk()以便让我们可以在从节点读取数据。

    ​ 在主节点的test数据库输入插入数据:

    ​ db.test.insert({a:1})

    插入后,我们再往从节点的powershell上查询test数据库:

    ​ db.test.find()

    ​ 可以发现,是可以查到新插入的数据的。

    你好啊,谢谢你来看我。
  • 相关阅读:
    Redis Java客户端之Lettuce
    Redis Java客户端之Redisson
    Redis Java客户端的比较
    Redis布隆过滤器
    过期删除策略和内存淘汰策略
    集群模式详解
    哨兵模式详解
    Redis Java客户端之Jedis
    主从复制
    AOF持久化
  • 原文地址:https://www.cnblogs.com/sitr/p/14057924.html
Copyright © 2020-2023  润新知