美文网首页
MongoDB:2.部署副本集

MongoDB:2.部署副本集

作者: 小六的昵称已被使用 | 来源:发表于2019-05-12 09:51 被阅读0次

    环境

    [root@centos181001 ~]# cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core)
    
    [root@mongodb-hotel-test ~]# mongo --version
    MongoDB shell version v4.0.9
    git version: fc525e2d9b0e4bceff5c2201457e564362909765
    OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    allocator: tcmalloc
    modules: none
    build environment:
        distmod: rhel70
        distarch: x86_64
        target_arch: x86_64
    

    概述

    三个成员副本集提供足够的冗余以承受大多数网络分区和其他系统故障。
    这些集合还具有足够的容量用于许多分布式读取操作。
    副本集应始终具有奇数个成员。这确保选举顺利进行。
    

    注意实现

    在生产中,将副本集的每个成员部署到自己的计算机,如果可能,绑定到标准的MongoDB端口27017。
    如果可能,请使用逻辑DNS主机名而不是IP地址,尤其是在配置副本集成员或分片集群成员时。
        逻辑DNS主机名的使用避免了由于IP地址更改而导致的配置更改。
    

    第一步:准备3台主机并安装 MongoDB

    请参照之前文章
    

    第二步:设置集群

    1.编辑配置文件以使用副本集模式运行

    cp /etc/mongod.conf /etc/mongod.conf.bak
    vim /etc/mongod.conf
    
    ## 添加以下内容
    replication:
       replSetName: "rs0"
    

    2.启动 MongoDB

    systemctl stop mongod.service
    systemctl start mongod.service
    systemctl status mongod.service
    systemctl enable mongod.service
    

    3.使用任何一个节点登录并执行以下命令

    ## 登录 MongoDB
    mongo
    
    ## 执行命令
    rs.initiate( {
       _id : "rs0",
       members: [
          { _id: 0, host: "192.168.30.81:27017" },
          { _id: 1, host: "192.168.30.82:27017" },
          { _id: 2, host: "192.168.30.83:27017" }
       ]
    })
    
    ## 查看副本集配置
    rs.conf()
    
    ## 要检查副本集的状态
    rs.status()
    

    附录:1.将独立转换为副本集

    1.关闭数据库

    systemctl stop mongod.service
    

    2.编辑配置文件以使用副本集模式运行

    cp /etc/mongod.conf /etc/mongod.conf.bak
    vim /etc/mongod.conf
    
    ## 添加以下内容
    replication:
       replSetName: "rs0"
    

    3.启动 MongoDB

    systemctl stop mongod.service
    systemctl start mongod.service
    systemctl status mongod.service
    systemctl enable mongod.service
    

    4.使用任何一个节点登录并执行以下命令

    ## 启动新的副本集
    rs.initiate()
    
    ## 查看副本集配置
    rs.conf()
    
    ## 要检查副本集的状态
    rs.status()
    

    相关文章

      网友评论

          本文标题:MongoDB:2.部署副本集

          本文链接:https://www.haomeiwen.com/subject/wjgqaqtx.html