zoukankan      html  css  js  c++  java
  • mongodb3.6 副本集(三)mongodb 如何做数据备灾

    前言

     个人理解,副本集一个主要作用就是当Master库出现故障,其中的一个salve从库会被选举出来成为新的Master。框架图如下:

    其中,选举者是不参与数据存储的,它的作用只是为了选举出新的Master。当原Master恢复后,他也只会以从库salve身份加入到副本集中。

    当然,我们也可以在恢复启动它的时候手动配置priority参数,让他成为Master。

    Demo

    下面通过具体的例子说明。

    首先在mongo目录下建立3个(一个作为master,一个作为从库,一个作为选举者,在实际项目中,这三个服务最后放在不同的服务器上)配置文件,文件内容如下:

    Master

    #配置mongodb数据的存储路径
    dbpath=D:mongodbdata s1
    #配置mongodb日志文件
    logpath=D:mongodblog s1.log
    #配置端口,若不配置,默认27017端口
    port=40001
    #副本集名字,每个配置文件中需保持一致
    replSet=rs_test

    Salve

    #配置mongodb数据的存储路径
    dbpath=D:mongodbdata
    s2
    #配置mongodb日志文件
    logpath=D:mongodblog
    s2.log
    #配置端口,若不配置,默认27017端口
    port=40002
    #副本集名字,每个配置文件中需保持一致
    replSet=rs_test
    

    选举者配置文件

    #配置mongodb数据的存储路径
    dbpath=D:mongodbdata s3
    #配置mongodb日志文件
    logpath=D:mongodblog s3.log
    #配置端口,若不配置,默认27017端口
    port=40003
    #副本集名字,每个配置文件中需保持一致
    replSet=rs_test

     启动三个mongodb实例

    首先,在bin 目录下打开三个shell窗口,分别启动上面配置的三个mongodb,如下命令:

    mongod -f d:mongodb s1.conf  

    若是都启动成功,我们将会在日志文件中看到主要的信息:

    waiting for connections on port 40003

    其次,连接配置在40001端口的mongodb实例:

    mongo -port 40001

    初始化40001 为master:

    rs.initiate()

    初始化成功,使用命令rs.status() 查看副本集状态,将会看到如下图:

    从图中可以看到40001已经作为primary 启动。

    再次,执行命令 rs.add("127.0.0.1:40002")  添加从库。

    添加选举者:rs.addArb("127.0.0.1:40003") 

    再次执行 rs.status() 查看副本集的状态,将会看到如下图:

    验证 选举

    关闭40001 服务端窗口(故障停机),在40002窗口执行 rs.status(),将会看到如下图:

    最后,再次启用40001 服务端,在bin 下 执行  mongod -f d:mongodb s1.conf

    然后 再次查看状态 rs.status() ,可以看到40001已经重新加入到副本集并且是作为从库加入的,如下图:

     关于mongodb 副本集就介绍到这里,希望对大家有帮助。文中如有不对的地方,欢迎指出。

    谢谢。 

  • 相关阅读:
    在ASP.Net中两种利用CSS实现多界面的方法
    c# 添加图片水印,可以指定水印位置+生成缩略图[付上帅图1,2,3,4]
    精力有限,本博客暂停维护,转到www.80back.com(个人的小站)
    设计一个silverlight的Button控件silverlight(银光)学习(1)
    asp.net(c#)上传图片生成缩略图
    DataGrid和存储过程结合的分页,只读取当前页数据
    c#实现google样式的分页
    asp.net MD5加密函数(c#)
    执行JS
    LoadRunner常见问题
  • 原文地址:https://www.cnblogs.com/liangxiarong/p/8440750.html
Copyright © 2011-2022 走看看