• Mongo服务器集群配置学习一——主从复制


    主从复制是MongoDB最常用也是最简单的复制操作。常用于数据备份和故障修复等。

    下面这个图就是最简单的主从复制的服务器架构

    我将以实验的方式来实现MongoDB的主从复制

    实验环境:windows操作系统(一台机器启动多个MongoDB数据库),MongoDB 2.4

    说明:

    1.MongoDB以配置文件的形式启动

    2.以执行保存的bat文件代替每次输入CMD中输入命令

    步骤:

    1.配置主节点并启动,端口为10001,下图为配置的文件结构

    其中config.cnf的内容为

    dbpath=D:\mongodb\test\copy\10001\Data
    bind_ip=127.0.0.1
    port=10001
    master=true

    用startup.bat启动主节点:mongod -f config.cnf

    用shell.bat启动shell:mongo 127.0.0.1:10001

    其中master参数为true说明这台是主节点

    2.配置从数据库,端口为10002

    config.cnf的内容为

    dbpath=D:\mongodb\test\copy\10002\Data
    bind_ip=127.0.0.1
    port=10002
    slave=true
    source=127.0.0.1:10001

    用startup.bat启动从节点:mongod -f config.cnf

    用shell.bat启动shell:mongo 127.0.0.1:10002

    slave参数设置从节点,source从数据库对应的主节点的地址

    3.下面就来做下验证,在10001主节点上的person数据库添加集合baseinfo,并添加一条文档

    这个时候再来10002从节点查询,就可以看到这条同样的数据已经复制过来了。

    4.其他参数

    --only 从节点配置,只复制特定某个数据库

    --autoresync 从节点配置,如果主节点与从节点数据不同,则自动重新同步。配置这个节点可以给运行了一段时间的主节点加上一个新节点,则这个新节点会把之前的主节点数据全部同步过来,而不是从现在这个时间同步。

    --slavedelay 从节点配置,从数据库延迟同步主数据库的时间

    --fastsync 从节点配置,以主节点的数据库快照启动从节点,可以加快启动速度。

    --oplogsize 主节点配置,主节点oplog大小,主节点会把数据库操作的日志写在oplog中,从节点参考oplog做复制操作,可以根据自身情况调节日志大小。如果不指定oplogsize大小,mongod将指配5%的可用磁盘空间给他,32位机最小是50M,64位机最小是1G。

    动态添加删除主从节点

    先看看从节点的对于主节点的配置在哪,在从节点的local数据库的sources集合中,查看信息如下:

    现在再启动一台普通的节点,不设置任何主从,端口设为10003

    dbpath=D:\mongodb\test\copy\10003\Data
    bind_ip=127.0.0.1
    port=10003
    slave=true

    启动后,动态的把10003加入到主从架构中,形成如下的结构

    在10003的shell中执行下面脚本即可。

    use local

    db.sources.insert({"host":"127.0.0.1:10001"})

    这样10003就作为10001的从节点了

    删除主从关系就用db.sources.remove({"host":"127.0.0.1:10001"})

    主节点往从节点转移

    永久的转移一个损坏的和不可用的主节点A到从节点B,有以下步骤:

    1.关闭A节点

    2.停止B节点的Mongod

    3.对B节点的dbpath目录下的文件进行备份和移动

    注:删除local.*是不可撤销的。执行此步骤非常谨慎。

    4.在B节点上用--master参数重启Mongod

    调换主节点和从节点

    有一个主节点A和一个从节点B,如果想调换他们的角色,请按下面的步骤,这里假设A是健康的,可更新的可用的

    如果A是不是健康的,但硬件是好的(停电,服务器崩溃等),跳过步骤1和2,并在第8步用B的文件取代所有的文件。

    如果A是不是健康的,硬件是不好的,将A替换为一台新机器。可以按照上段中的说明。

    1.暂停在A上使用fsync命令

    2.确定B是在同步节点A

    3.关闭B节点

    4.从B的DBPATH目录备份和移动的所有数据文件,并删除现有的数据local.sources。

    5.用master选项启动B

    6.往B中写入数据,用oplog设置新的同步开始时间点

    7.关闭B,当重启时B就有新的一组本地数据

    8.关闭A,用备份B的dbpath目录文件复制到A的dbpath中

    9.用master选项启动B

    10.用通常slave选项启动A,但要包括fastsync参数

  • 相关阅读:
    EncryptionAndDecryptionC# 加密 解密
    EncryptFac 加解密小工具
    Aes加密/解密示例项目
    DES加密解密工具
    DESC加密解密算法
    加解密合集
    Zabbix系列之一——zabbix3.4部署
    Linux下ntpdate时间同步
    SVN服务器搭建实录
    Failed to get D-Bus connection: Operation not permitted解决
  • 原文地址:https://www.cnblogs.com/wly923/p/3019518.html
Copyright © 2020-2023  润新知