RedisShake icon indicating copy to clipboard operation
RedisShake copied to clipboard

请问下是否支持实时监听AOF,同步增量内容?

Open chenbt-hz opened this issue 2 years ago • 2 comments

是否支持AOF文件的增量同步

没有看到详细的AOF增量同步的内容和原理,加之阿里云社区相关文档有些过时。 主要是想请教一下AOF增量的原理和机制。

实际需求和遇到的问题

我希望最终能实现业务无感知的迁移,也就是不中断业务的情况下操作。因此,启动redis-shark迁移时,仍然需要持续监听源端的aof文件,并将增量的部分迁移到目的端。 实际测试时,我发现该工具只能将rdb中的数据迁移过来,aof中的数据只有一小部分保存下来。 且aof相关的写入日志是突然中断,未给出其他日志信息。

(注: 为了实现个性化的迁移需求,我基于V3版本的redis-shark,尝试对rdb.go等模块进行了一些改动,改动不涉及aof的读写。目前使用redis-full-check验证,启动迁移程序后,源端不新增的数据的情况下迁移是完整的。)


源端

版本:自建codis


目的端 版本:自建pika

chenbt-hz avatar Sep 30 '22 02:09 chenbt-hz

支持增量同步,原理是模拟 Redis slave。


且aof相关的写入日志是突然中断,未给出其他日志信息。

请给出一些日志信息,不太明白这里表达的意思。


尝试对rdb.go等模块进行了一些改动

请尝试使用未改动的版本测一下,看看还会出问题吗?可能你的改动会导致有些 offset 的统计出现问题。

suxb201 avatar Sep 30 '22 02:09 suxb201

感谢回复,按这个思路我再看看


目前在本地调试,自定义日志比较杂,因此暂时不放上来了 根据效果描述,就是本地的 data/*.aof 里面只记了一点点数据,甚至末尾的数据有时候是不完整的。因此导致后面写入不完整

请给出一些日志信息,不太明白这里的意思。

有可能是这个原因,为了方便改动,我目前将offset相关部分摘除了。本想自定义其他的channel用来发送执行信号。

请尝试使用未改动的版本测一下,看看还会出问题吗?可能你的改动会导致有些偏移的统计出现问题。

chenbt-hz avatar Sep 30 '22 02:09 chenbt-hz

已解决。 1.自己改造部分引入问题。 2.测试的codis设置了client-output-buffer-limit,导致连接中断。

chenbt-hz avatar Oct 21 '22 01:10 chenbt-hz