[mongo]-mongoshake同步自建mongo到阿里云mongo集群

虽然可以用阿里云自带的dts 并且也是免费的,但是万一后续没有用阿里云或者换工具了咋办。所以还是尝试学习使用一下工具迁移。工具也是阿里开源的 哈哈哈

下载mongoshake

# 建议下载最新版本 https://github.com/alibaba/MongoShake/releases?spm=a2c4g.11186623.2.21.5f006ed2c3KAD0
# 但是新版本的可能会出现version GLIBC_2.14 not found
mkdir -p /srv/mongoshake 
cd  /srv/mongoshake
wget https://github.com/alibaba/MongoShake/releases/download/release-v2.0.7-20190817/mongo-shake-2.0.7.tar.gz
# 百度网盘地址 链接:https://pan.baidu.com/s/1lJGIb93R3oK30FxgTHbYmQ  密码:643n

解压mongoshake

cd /srv/mongoshake
tar zxvf mongo-shake-2.0.7.tar.gz

修改配置文件

参数 说明 示例值 备注
mongo_urls 源端MongoDB实例的ConnectionStringURI格式连接地址。 mongo_urls = mongodb://root:[email protected]:3717,dds-bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717 这里能用内网地址就用内网地址
tunnel.address 目标端MongoDB实例的ConnectionStringURI格式连接地址。 tunnel.address = mongodb://root:[email protected]:3717,dds-bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717 可以直接在阿里云mongo集群的信息里 复制黏贴
sync_mode 数据同步的方式,取值:
all:执行全量数据同步和增量数据同步。
document:仅执行全量数据同步。
oplog:仅执行增量数据同步。
sync_mode = all 默认值为oplog,但是我这边第一次同步选all 同步失败了,所以还是先全量再增量
replayer.dml_only 是否仅同步DML操作,取值:
false:同步DML操作和DDL操作。
true:仅同步DML操作。
replayer.dml_only = false 默认取值为true
filter.namespace.black 指定数据同步的黑名单,这些指定的命名空间不会被同步至目标数据库,多个命名空间用英文分号(;)分隔。 默认为空 不需要修改
filter.namespace.white 指定数据同步的白名单,只有这些指定的命名空间会被同步至目标数据库,多个命名空间用英文分号(;)分隔。 默认为空 不需要修改

启动mongoshake

我这里选择all模式 会出现失败的情况 所以采用了全量+增量 2步分开的方式 失败报错如下。

[mongo]-mongoshake同步自建mongo到阿里云mongo集群_第1张图片

./collector -conf=collector.conf -verbose

进度条如下。 并不是实时更新的样子。100G左右数据 只能根据磁盘空间 判断是否同步。

[mongo]-mongoshake同步自建mongo到阿里云mongo集群_第2张图片

[mongo]-mongoshake同步自建mongo到阿里云mongo集群_第3张图片

数据最终全量同步过去了,但是最后还是出现了飞机坠机 哈哈哈。count了一下 数据量是对的,没有影响。

给自己做个笔记 万一下次用的上呢。

参考阿里云手册

https://www.alibabacloud.com/help/zh/doc-detail/122621.htm

你可能感兴趣的:([mongo]-mongoshake同步自建mongo到阿里云mongo集群)