MongoShake实时同步,MongoDB1到MongoDB2(单向)

一个主(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(单向))