mongodb主从同步配置实战详细教程(建议收藏)

 更新时间:2024年10月10日 10:13:52   作者:aa一叶知秋aa  
MongoDB主从同步是一种数据库同步备份技术,主要用于数据备份、故障恢复和读扩展,其基本原理是通过主节点记录操作日志,从节点定期获取这些日志并在本地执行,实现数据的同步,适合需要高可用性的系统部署,感兴趣的朋友一起看看吧

MongoDB主从同步

主从同步是MongoDB最常用的同步方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活,可用于备份,故障恢复,读扩展等。
最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址。采用双机备份后主节点挂掉以后从节点可以接替主机继续服务。所以这种模式比单节点的高可用性要好很多。

主从同步的原理

在主从结构中,主节点的操作记录成为oplog(operation log),oplog存储在一个系统数据库local的集合oplog.$main中,这个集合的每个文档都代表主节点上执行的一个操作。

从服务器会定期从主服务器中获取oplog记录,然后在本机上执行!对于存储oplog的集合,MongoDB采用的是固定集合,也就是说随着操作变化,新的操作会覆盖旧的操作!

主从同步的其他设置项

  • --only 从节点指定同步某个数据库,默认是同步全部数据库
  • --slavedelay 从节点设置主数据库同步数据的延迟(单位是秒)
  • --fastsync 从节点以主数据库的节点快照为节点启动从数据库
  • --autoresync 从节点如果不同步则重新同步数据库(即选择当通过热添加了一台从服务器之后,从服务器选择是否更新主服务器之间的数据)
  • --oplogSize 主节点设置oplog的大小(主节点操作记录存储到local的oplog中)

配置主从同步的注意点

1 在数据库集群中要明确的知道谁是主服务器,主服务器只有一台

2 从服务器要知道自己的数据源也就是对应的主服务器是谁

3 --master用来确定主服务器,--slave  和 --source 来控制从服务器

环境

系统                     IP                              配置
CentOS 7.6         192.168.121.164         mongodb主库
CentOS 7.6         192.168.121.133         mongodb从库

主从配置

主库的配置(直接复制执行)

cat > /opt/mongodb_app/mongo_27017/conf/mongodb.conf << EOF
systemLog:
  destination: file
  logAppend: true
  path: /opt/mongodb_app/mongo_27017/logs/mongodb.log

storage:
  journal:
    enabled: true
  dbPath: /opt/mongodb_app/data/mongo_27017
  directoryPerDB: true
  wiredTiger:
     engineConfig:
        cacheSizeGB: 1
        directoryForIndexes: true
     collectionConfig:
         blockCompressor: zlib
     indexConfig:
        prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /opt/mongodb_app/mongo_27017/pid/mongod.pid

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.121.164

EOF

使用--master参数启动主库

/opt/mongodb_app/mongodb/bin/mongod -f /opt/mongodb_app/mongo_27017/conf/mongodb.conf --master

从库的配置(直接复制执行)

cat > /opt/mongodb_app/mongo_27017/conf/mongodb.conf << EOF
systemLog:
  destination: file
  logAppend: true
  path: /opt/mongodb_app/mongo_27017/logs/mongodb.log

storage:
  journal:
    enabled: true
  dbPath: /opt/mongodb_app/data/mongo_27017
  directoryPerDB: true
  wiredTiger:
     engineConfig:
        cacheSizeGB: 1
        directoryForIndexes: true
     collectionConfig:
         blockCompressor: zlib
     indexConfig:
        prefixCompression: true

processManagement:
  fork: true
  pidFilePath: /opt/mongodb_app/mongo_27017/pid/mongod.pid

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.121.133


EOF

使用--slave --source 192.168.121.164:27017参数启动从库

然后进去查看数据情况(那个新建会话是主库)

测试主从情况

db.inventory.insertMany( [
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" },
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
]);

两边数据是没有问题的,至此mongodb的主从同步就完成了

我在写这个文章的时候也有参考一些文档,如有侵权请告知

到此这篇关于mongodb主从同步配置的文章就介绍到这了,更多相关mongodb主从同步配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB数据备份迁移的全过程

    MongoDB数据备份迁移的全过程

    这篇文章主要记录了MongoDB数据备份迁移的全过程,文中通过图文结合的方式介绍的非常详细,对大家了解学习MongoDB数据备份迁移有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • MongoDB模糊查询正则regex(类似like 和 not like)

    MongoDB模糊查询正则regex(类似like 和 not like)

    在类关系型数据库中,like和not like是常用的模糊查询操作符,它允许我们在匹配字段的时候使用通配符,在MongoDB中,也有类似的操作符,MongoDB 可以使用 $regex 操作符来设置匹配字符串的正则表达式,MongoDB 使用 PCRE(Perl 兼容的正则表达式)作为正则表达式语言
    2024-02-02
  • MongoDB中sort()排序方法、aggregate()聚合方法和索引代码示例

    MongoDB中sort()排序方法、aggregate()聚合方法和索引代码示例

    这篇文章主要给大家介绍了关于MongoDB中sort()排序方法、aggregate()聚合方法和索引的相关资料,MongoDB的聚合函数Aggregate是一组用于对MongoDB中的数据集进行聚合操作的函数,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 分布式文档存储数据库之MongoDB访问控制的操作方法

    分布式文档存储数据库之MongoDB访问控制的操作方法

    这篇文章主要介绍了分布式文档存储数据库之MongoDB访问控制的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Windows安装压缩版MongoDB的教程

    Windows安装压缩版MongoDB的教程

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。这篇文章主要介绍了Windows安装压缩版MongoDB的教程,需要的朋友可以参考下
    2019-12-12
  • MongoDB固定集合(capped collection)的知识小结

    MongoDB固定集合(capped collection)的知识小结

    固定集合指的是事先创建,并且大小固定的集合。下面这篇文章主要给大家总结介绍了MongoDB固定集合(capped collection)的知识,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起学习学习吧
    2018-10-10
  • MongoDB 数据库的命名、设计规范详解

    MongoDB 数据库的命名、设计规范详解

    随着MongoDB的普及和使用量的快速增长,为了规范使用,便于管理和获取更高的性能,整理此文档
    2020-02-02
  • Mongodb中MapReduce实现数据聚合方法详解

    Mongodb中MapReduce实现数据聚合方法详解

    Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据。接下来通过本文给大家介绍Mongodb中MapReduce实现数据聚合方法详解,感兴趣的朋友一起学习吧
    2016-05-05
  • mongos崩溃后无法重启问题的解决方法

    mongos崩溃后无法重启问题的解决方法

    这篇文章主要给大家介绍了关于mongos崩溃后无法重启问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • MongoDB安装到windows服务的方法及遇到问题的完美解决方案

    MongoDB安装到windows服务的方法及遇到问题的完美解决方案

    这篇文章主要介绍了MongoDB安装到windows服务的方法及遇到问题的完美解决方案,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-11-11

最新评论