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

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

  • 相关阅读:
    墨西哥大众VW Mexico常见的几种label
    一次搞懂SpringBoot核心原理:自动配置、事件驱动、Condition
    8. SQL中Order by和Group by子句的使用简介
    pytorch中的池化函数
    leetcode 13. 罗马数字转整数
    Java学习笔记——并发编程(三)
    小程序常用样式和组件
    if else 替代方案
    Mybatis操作数据库流程源码
    负责任de老师
  • 原文地址:https://blog.csdn.net/weixin_42575078/article/details/134370940