美文网首页
MongoShake实时同步,MongoDB1到MongoDB2

MongoShake实时同步,MongoDB1到MongoDB2

作者: ITianl | 来源:发表于2021-08-09 12:21 被阅读0次

    一个主(MongoDB1),一个目标(MongoDB2),集群版类似。

    1. 说明:

    MongoDB 下载地址(社区版,当前5.0.2):https://www.mongodb.com/try/download/community
    MongoShake介绍地址: https://help.aliyun.com/document_detail/122621.htm
    MongoShake下载地址: https://github.com/alibaba/MongoShake/releases
    本文采用:MongoDB版本 : 4.0.4 ,MongoShake版本:2.6.5
    MongoDB版本建议4.x以上,MongoShake版本2.6以上(版本低支持不太友好)

    2.MongoDB (主库,目标库) 安装(简说)

    安装(主,目标)MongoDB,并在mongodb目录下:
    创建data文件夹用于存放数据,创建logs文件用于存放文件

    mkdir data
    touch logs

    3.MongoDB (主库) 配置

    mongodb目录下创建mongodb.conf 配置文件

    touch mongodb.conf

    mongodb.conf 配置如下:

    dbpath=/xxx/mongodb/data #主库的data路径
    logpath=/xxx/mongodb/logs #主库的logs路径
    logappend=true
    port=27017
    fork=true
    bind_ip=0.0.0.0
    replSet=rs0 #副本集 rs0 自己取的副本集名称
    备注:同步数据不是直接目标主库直接获取,而是走副本集oplog,mongodb的集群模式
    本文单库同步只需要主库开启,目标库不需要

    主库配置副本集,如下:

    进入bin目录下:
    [root@xxxxxx mongodb]# ./mongo
    或 (如果有多个mongodb在一台机器上,最好指定端口)
    [root@xxxxxx mongodb]# ./mongo 127.0.0.1:27017

    > conf=
        {
        "_id" : "rs0",
        "members" : [
            { "_id" : 0, "host" : "127.0.0.1:27017" }
            ]
        }
    > rs.initiate(conf)
    {
        "ok" : 1,
        "operationTime" : Timestamp(1542247326, 1),
        "$clusterTime" : {
            "clusterTime" : Timestamp(1542247326, 1),
            "signature" : {
                "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                "keyId" : NumberLong(0)
            }
        }
    }
    rs0:SECONDARY>
    

    初始化配置:conf
    备注:单库同步集群队列中,只有自己,如需集群同步,例:rs.add("127.0.0.1:27018") 添加集群
    主库已经配置完成!
    可以启动了:./bin/mongod -f mongodb.conf

    4.MongoDB (目标库) 配置

    touch mongodb.conf

    mongodb.conf 配置如下:

    dbpath=/xxx/mongodb2/data #目标库的data路径
    logpath=/xxx/mongodb2/logs #目标库的logs路径
    logappend=false
    port=27018
    fork=true
    bind_ip=0.0.0.0

    目标库配置完成!
    可以启动了:./bin/mongod -f mongodb.conf

    5.MongoShake

    重点配置(其他配置根据自己需要修改,如集群,分片,延时同步等)

    下载解压MongoShake 编辑 collector.conf

    vim collector.conf

    #全量同步
    sync_mode = all 
    #无密码 mongodb 单台同步
    mongo_urls = mongodb://127.0.0.1:27017
    #目的库地址(本文目标库)无密码
    tunnel.address = mongodb://127.0.0.1:27018
    

    配置完成
    启动:./collector.linux -conf=collector.conf
    windows端 collector.windows
    监控状态查看另起窗口./mongoshake-stat --port=9100

    MongoShake实时同步(kafka) : https://www.jianshu.com/p/384323890b4e

    相关文章

      网友评论

          本文标题:MongoShake实时同步,MongoDB1到MongoDB2

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