-
Notifications
You must be signed in to change notification settings - Fork 442
第一次使用,如何进行配置?
本文主要介绍如何使用mongo-shake。
对于使用中的报错,强烈建议先阅读wiki faq文档,如果未能解决请参考提issue必看添加issue。使用的步骤主要为以及几大部分:
- 下载代码
- 编译代码,或者使用bin目录下现成的二进制文件
- 修改配置文件
- 启动
直接git clone或者通过二进制包下载。当然,更简单的方式是,用户可以在这里下载到最新的发行的包,免去编译的环节。
如果用户是自己git clone代码的方式,那么可以通过README的Usage中所说的方式进行编译,不过由于依赖的库需要下载。包依赖使用go mod方式,体现下载下依赖的包。下载完以后就可以直接调用build.sh
脚本进行编译执行。
采用第一步里面说的下载最新发行包的方式,不需要编译环节。
这部分应该是用户最困惑的地方,为了满足用户的灵活配置,目前开放了较多的配置项,但用户一开始使用并不需要管这么多的项。对于MongoDB到MongoDB的同步需求,用户只需要修改collector.conf
的配置文件。通常对于副本集的同步只需要配置两个:源mongodb的地址mongo_urls
、目的mongodb的地址tunnel.address
(与mongodb的url风格一致,db节点以逗号分割,没有用户名密码则不需要配置前缀username:password@
),其余默认配置就行。如果有其他的需求再仔细阅读以下各个配置项信息。以下我大概介绍一下不同的需求该如何进行配置。
这里提供了配置模板,如果场景相同,则只需要修改模板中的对应参数即可成功运行,请参考:配置模板 - 常见场景配置参数
关于各项配置参数的含义请参考:配置参数说明
对于源节点是分片的情况,源mongodb的地址mongo_urls
需要配置各个分片shard的地址(需要local库的读权限),以分号(;)分隔。tunnel.address
需要配置目的端的mongos地址。此外,还需要配置checkpoint.storage.url
,这个是用于存储checkpoint的地址。
另外,需要强调的是,目前sharding模式源端需要关闭balance,暂不支持move chunk的同时进行同步。
源节点不变,tunnel
字段设置成对应的模式,tunnel.address
设置对应模式的对应地址,具体参考注释。
从v1.5版本开始,我们支持了全量,用户可以通过sync_mode
配置,all
代表全量+增量,document
代表仅全量(v2.4以后为full
),oplog
代表仅增量(v2.4以后为incr
)。
设置replayer.dml_only
等于false(v2.4以后的版本需要设置filter.ddl_enable = true
)。
用于写入的配置,具体请参考配置参数说明
这是因为写入的数据有控制信息在里面,需要用receiver进行接收,剥离控制信息,然后再进行后续的对接。receiver同样需要编译,编译后位于bin目录。
剩下详细的信息请参考配置文件的具体说明。
编译后bin目录下会生成多个架构的collector二进制文件,按自己的平台修改名字,如linux平台则是把collector.linux改为collector
在bin目录下执行:./collector -conf=collector.conf,log会写入目录log.dir
,文件名为log.file
,如果希望log打印的屏幕,请额外添加-verbose
。