• MongoDB副本集配置和创建


    副本集有三类角色:master(primary),slave(secondary),仲裁服务器

    primary是主,只有primary能写入,secondary无法插入数据,且需要声明是slave才能查看数据

    一般生产搞三个服务器做一个master和两个slave,再来一个服务器做仲裁节点服务器,说是有仲裁服务器才可以自动切换,但是我没有也可以的,要是不信,也可以自己试试,呵呵。

    ---副本集搭建,安装软件和单实例一模一样,下面是配置文件,三台服务器用不同的端口:

    systemLog:

      destination: file

      logAppend: true

      path: /data/mongodb-cluster/27017/mongodb.log

    storage:

      dbPath: /data/mongodb-cluster/27017

      journal:

        enabled: true

    processManagement:

      fork: true

    net:

      port: 27017

      bindIp: 0.0.0.0

    replication:  

      replSetName: zmh

    另外两台的配置就省略了,只需要改path和端口信息就行。

    ---启动三个mongodb服务器,需要对应更改端口、数据目录、日志路径

    /usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27017/mongodb.conf

    /usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27018/mongodb.conf

    /usr/local/mongodb/bin/mongod -f /data/mongodb-cluster/27019/mongodb.conf

    ---在主节点写入所有节点的信息,注意了,conf文件的replSetName需要和config _id:"zmh"保持一致

    config = { _id:"zmh", members:[

    {_id:0,host:"192.167.100.181:27017"},

    {_id:1,host:"192.167.100.182:27018"},

    {_id:2,host:"192.167.100.183:27019"}]

    }

    ---初始化副本集

    use admin

    rs.initiate(config)

    ---查看副本集状态

    rs.status()

    ---完成初始化后,重启两个slave节点的mongo进程

    ----副本集同步测试

    主节点插入数据:

    use test

    db.myuser.insert( {userid: 1} )

    ----从节点查看数据:

    rs.slaveOk()    //SECONDARY需要声明是slave才能查看数据

    db.myuser.find()

    { "_id" : ObjectId("65406be329de1b2fafebfa56"), "userid" : 1 }

    ---查看slave的延时情况

    rs.printSlaveReplicationInfo()

    注意:优化参数要保持一致

  • 相关阅读:
    我们如何利用 0 美元营销将 UX/UI 产品发展到 320k 用户
    Python 面试高频问题:cls到底是什么
    UE5简化打包大小
    【刷题】BFS题目精选
    找工作笔记
    虚幻引擎 快速的色度抠图 Chroma Key 算法
    boost之内存管理
    【工具门户】Backstage配置使用PostgreSQL(三)
    【深圳1024开发者城市聚会定向征文】
    【CSDN 每日一练 ★☆☆】【链表】删除排序链表中的重复元素
  • 原文地址:https://blog.csdn.net/weixin_42575078/article/details/134370940