Mongo服务器集群配置——主从复制
博客专区 > 跃月 的博客 > 博客详情
Mongo服务器集群配置——主从复制
跃月 发表于2年前
Mongo服务器集群配置——主从复制
  • 发表于 2年前
  • 阅读 46
  • 收藏 3
  • 点赞 0
  • 评论 1

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;复制还允许您从硬件故障和服务中断中恢复数据

MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;复制还允许您从硬件故障和服务中断中恢复数据。

MongoDB复制原理

mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

  • mongodb各个节点常见的搭配方式为:一主一从、一主多从。

  • 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致

  • 默认读写操作都指向主节点。
  • 主节点是唯一的,但不固定。 
    复制集工作方式

    主从复制实践

    开启一个mongodb实例可以直接通过shell命令也可以通过配置文件开启,在之前的文章中已经介绍shell命令开启,本文我们将通过config文件的方式开启。

    • 语法格式:mongod -f config.cnf

1、接下来我们需要配置三份配置文件,10001,10002,10003;之中10001作为主库,其他的为从库;

 
  1. <--10001
  2. dbpath=D:\MongoData\10001\db
  3. logpath=D:\MongoData\10001\log\MongoDB.log
  4. bind_ip=127.0.0.1
  5. port=10001
  6. master=true--主节点
  7. <--10002
  8. dbpath=D:\MongoData\10002\db
  9. logpath=D:\MongoData\10002\log\MongoDB.log
  10. bind_ip=127.0.0.1
  11. port=10002
  12. slave=true--从节点
  13. source=127.0.0.1:10001--从对应的主节点复制数据
  14. <--10003
  15. dbpath=D:\MongoData\10003\db
  16. logpath=D:\MongoData\10003\log\MongoDB.log
  17. bind_ip=127.0.0.1
  18. port=10003
  19. slave=true--从节点
  20. --10003我们没有这只source,待会儿我们手动设置

2、开启mongodb实例 
上文中已经告诉大家怎么把mongodb实例总成windows服务来开启;我们将创建startup.bat(开启服务)

 
  1. <--startup.bat
  2. mongod -f D:\MongoData\10001\conf\10001.conf --install --serviceName MongoDB --serviceDisplayName MongoDB10001
  3. NET START MongoDB
  4. pause
  5. --注意用到-install命令,conf文件必须是绝对路径。

3、测试 
从库10002 第一次查询 person没有记录,当主库10001person插入一条数据后,再去查询 从库成功读取到数据,说明我们的主从复制完全没有问题。

  • 注意 
    MongoDb的“not master and slaveok=false”错误及解决方法 
    在SECONDARY查询出发现如下错误: 
    SECONDARY> show collections; 
    Sat Aug 4 15:29:00 uncaught exception: error: { "$err" : "not master and slaveok=false", "code" : 13435 } 
    这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下: 
    SECONDARY> rs.slaveOk();
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 16
码字总数 9715
评论 (1)
胖丫
这个不是长久解决办法
如果推出
下次再次登录的时候
还是会报同样的错误
×
跃月
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: