美文网首页程序员我爱编程PHP经验分享
mongodb复制集+认证踩坑记录

mongodb复制集+认证踩坑记录

作者: 魂狩 | 来源:发表于2018-04-11 14:18 被阅读0次

目标

两个实例上的(mongodb)数据同步,从主实例写入数据,可以从任意实例读取。当任意实例挂了后,另外一个实例可以变成主实例,可以读写。

需求

mongodb有效复制集至少需要3个实例才能达到完整效果。但是为了节约资源,我们可以用2个实例+1个仲裁实例来实现差不多的效果。仲裁实例甚至可以和某个实例在同一个服务器,只是这样的话可靠性会下降很多。
3台服务器,上面有版本一致的mongodb(我使用的版本为3.4),服务器之间可以互通。
创建一个公有的密钥,为方便我直接使用的ssh的公钥(需要处理,只截取中间的base64编码后的密钥)。也可以自己生成,生成方式于此。建议使用x.509证书方式,上ssl加密,安全系数更高。

初始化

  • 非主实例需要首先清空数据,建议直接删掉对应配置的storage.dbPath目录,否则有多个实例有数据,无法并入复制集。

  • 配置中必须有这几个字段:

    net:
    port: 27017
    bindIp: 0.0.0.0
    security:
    keyFile: /etc/mongo.key
    replication:
    replSetName: "test"

  • 在主实例分配帐号,设置权限。复制集生效后,其他实例会同步用户信息。

  • 密钥文件用户组需要改成mongo:mongo,权限400,否则实例无法启动。

部署

  • 启动所有实例

  • 仲裁实例需要手动启动,mongod --config /etc/mongodarb.conf &。仲裁实例端口和存储目录需要独立

  • 进入主实例,登录(帐号需要有clusterAdmin权限)。此时实例由于没有复制集配置,处于不可用状态。

  • 主实例执行

    rs.initiate( {
    _id : "test",
    members: [
    { _id: 0, host: "192.168.0.2:27017",priority:10 },#主实例
    { _id: 1, host: "192.168.0.3:27017",priority:1 }
    ]
    })
    rs.addArb('192.168.0.3:27018')

  • 执行rs.status()确认复制集正常运行。完成

  • 如需要在非主实例查看数据,要先在对应实例执行rs.slaveOk(true)。非主实例可能会有2秒左右延迟。

其他

数据库热切换需要应用支持。如PHP,连接数据库时需要指定复制集内实例地址,具体见文档

相关文章

  • mongodb复制集+认证踩坑记录

    目标 两个实例上的(mongodb)数据同步,从主实例写入数据,可以从任意实例读取。当任意实例挂了后,另外一个实例...

  • MongoDB基础笔记

    outline MongoDB常用命令 MongoDB的CRUD 索引 MongoDB的安装 踩坑记录 Mongo...

  • mongodb——分布式

    复制集 mongodb在集群环境中,通过复制的形式对数据进行冗余。mongodb复制集有Primary、Secon...

  • mongodb复制集(replication)安装

    火山日常啰嗦上一篇说了mongodb单机版的安装,现在就来记录mongodb复制集replication的安装过程...

  • mongoDB 集群模式记录

    mongoDB 集群模式记录 官方手册 replica set(复制集) replica set 是一组存储了相同...

  • MongoDB 分片集群技术

    1.1 MongoDB复制集简介 一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。...

  • MongoDB复制集 搭建

    MongoDB复制集概述 准备 初始化复制集主节点、添加从节点和仲裁节点 检查各个节点local库信息 检查复制集...

  • 记录mongodb 安装 踩坑史

    踩坑1、在官网下载对应的msi文件后,进行安装。安装这边有很多坑。。。 默认点击下一步,下一步,勾选了comple...

  • mongodb复制集

    mongodb复制集技术 mongodb复制结构功能 1、failover过程选主切换 2、是否对应用透明化vip...

  • MongoDB自学记录【二】----->mongodb配置复制集

    逻辑图 复制集中主要有三类节点: Primary节点:主节点,写操作只能在主节点上进行,primary节点把操作记...

网友评论

    本文标题:mongodb复制集+认证踩坑记录

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