• 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()

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

  • 相关阅读:
    银河麒麟服务器系统使用的一些问题和解决方案
    React Swiper.js使用(详细版)3D聚焦特效,自定义导航按钮等
    Layui快速入门之第八节 表格渲染与属性的使用
    火爆全网的 Evil.js 源码解读
    51单片机DAC数模转换
    pjsip-2.9点对点时解决注册慢问题
    基于springboot的阳光音乐厅订票系统的设计与实现
    GSCoolink GSV6708 HDMI4to2 CrossSwitch
    LeetCode 59. 螺旋矩阵 II
    数字博物馆如何设计搭建,一文了解数字博物馆解决方案
  • 原文地址:https://blog.csdn.net/weixin_42575078/article/details/134370940