MongoDB搭建复制集

复制集:使用多台保存了相同内容的MongoDB服务器来组成一个数据库集群

接下来介绍如何在本地电脑上搭建复制集

  • 下载:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.2.6.zip
  • 解压三份MongoDB安装包(三台MongoDB服务器)
  • 在安装目录下新建data和log文件夹
  • log目录下新建mongo.log文件
  • bin目录下新建mongo.config文件,配置如下内容

    Where and how to store data.
    storage:
      dbPath: D:\Developer\MongoDB666\mongodb27020\data // data文件夹路径
      journal:
        enabled: true
    where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path:  D:\Developer\MongoDB666\mongodb27020\log\mongo.log // mongo.log文件路径
    network interfaces
    net:
      port: 27020 // 修改端口号
      bindIp: 127.0.0.1 // MongoDB服务器地址
  • 以上步骤需对三份文件夹都进行配置,且需要换成不同的端口号

  • 注册配置MongoDB,注册服务
  • 分别进入bin目录,以管理员身份打开终端

    mongod --config mongo.config文件路径 --serviceName "服务名称" --serviceDisplayName "显示的服务名称" --replSet "复制集名称" --install
    
    mongod --config D:\Developer\MongoDB666\mongodb27018\bin\mongo.config --serviceName "MongoDB27018" --serviceDisplayName "MongoDB27018" --replSet "it666" --install
    mongod --config D:\Developer\MongoDB666\mongodb27019\bin\mongo.config --serviceName "MongoDB27019" --serviceDisplayName "MongoDB27019" --replSet "it666" --install
    mongod --config D:\Developer\MongoDB666\mongodb27020\bin\mongo.config --serviceName "MongoDB27020" --serviceDisplayName "MongoDB27020" --replSet "it666" --install
  • 打开任务管理器——服务——启动三台服务器
  • 手动启动服务,测试连接

    mongo --host 127.0.0.1 --port 27018
    mongo --host 127.0.0.1 --port 27019
    mongo --host 127.0.0.1 --port 27020
  • 初始化复制集(任意一台服务器执行即可)

    rs.initiate({
    _id: 'it666', // 复制集名称
    members: [
        {_id: 0, host: '127.0.0.1:27018'}, // 节点信息
        {_id: 1, host: '127.0.0.1:27019'},
        {_id: 2, host: '127.0.0.1:27020'}
    ]})
    • 相关属性:

      _id            整数    节点的唯一标识。
      host        字符串    节点的IP地址,包含端口号。
      arbiterOnly    布尔值    是否为投票节点,默认是false。是设置投票(选举)节点有关的参数
      priority    整数    选举为主节点的权值,默认是1,范围0-1000。
      hidden        布尔值    是否隐藏,默认false,是设置隐藏节点有关的参数。
      votes        整数    投票数,默认为1,取值是0或1,是设置”投票“节点有关的参数。
      slaveDelay    整数    延时复制,是设置延时节点有关的参数。单位秒(s)
  • 显示复制集相关信息(包括节点信息):rs.status()
  • 在主节点写入读取文档

    db.person.insert({name:'nhw'})
  • 注意:副节点读取时需执行 rs.slaveOk()

最后修改:2021 年 05 月 12 日
如果觉得我的文章对你有用,请随意赞赏!