Red Rabbit

Results 6 comments of Red Rabbit

> 这是账号权限问题,非shake的问题,配置的账号需要有库的读取权限才能运行。 我配置的是mongoshake2,但是报没有权限的是mongoshake。我配置mongoshake2的原因是:有多个mongshake实例拉取同一个mongo实例,只能通过checkpoint.storage.db配置不同名称实现。

MongoShake的版本:2.8.2 源和目的MongoDB的版本:源aliyun mongodb4.2,目的云kafka 脱敏后的配置文件和日志文件: 配置文件: ``` conf.version = 10 id = mongoshake master_quorum = true full_sync.http_port = 9101 incr_sync.http_port = 9100 system_profile_port = 9200 log.level = info log.dir = log.file...

> 这里确实有点不合理,后面版本改一下。 election的DB名称是写入的就是mongoshake,用的URI是checkpoint.storage.url。 checkpoint.storage.db = mongoshake2 这个是用来存储checkpoint增量断点信息的。 > > 但当前的问题是mongoshake这个用户,没有权限在mongoshake这个DB上执行find({ _id: ObjectId('5204af979955496907000001') })。建议用root账号试一试,先把权限问题排除了。 加了权限是可以的,但是我同时有两组mongoshake实例(每组1主1备)拉取同一个mongodb,这样mongoshake.election是属于哪一组mongoshake实例?这样无法做到多组实例部署(当拉取实例是同一个时)。 多组实例部署是有需要的,比如每组实例监听不同的库表发送到不同的kafka或topic;又或者一组用于mongodb同步,一组用于kafka同步。

修改建议:election 保存在checkpoint.storage.db 下。 ``` # collector.go 165 line go quorum.BecomeMaster(conf.Options.CheckpointStorageUrl, utils.VarCheckpointStorageDatabase) 改为 go quorum.BecomeMaster(conf.Options.CheckpointStorageUrl, utils.AppDatabase) ```

> 多组实例通过使用不同的集合存储checkpoint不就行了嘛?为什么要存储到不同库中? checkpoint.storage.collection=ckpt2 election 集合还是同一个,这个目前还不能配置吧

Sure. Thank you for following this project. I am happy for you to publicize this on StarRocks.