RedisShake icon indicating copy to clipboard operation
RedisShake copied to clipboard

源库有 XADD stream数据同步到目标库报错

Open wangshuang0220 opened this issue 9 months ago • 4 comments

问题描述(Issue Description)

请在这里简要描述你遇到的问题。

源库有 XADD stream数据同步到目标库报错 复现步骤:

  1. 源库插入命令: XADD mystream * field1 value1 field2 value2
  2. 启动redis-shake进行迁移

** 注 ** 只有全量阶段(rdb)会报错,增量阶段(aof)不会报stream 同步失败、

[ERR [writer_192.168.16.247_6379] receive reply failed. cmd=[restore mystream 0 ��P2�@L@cc�field1�2@ �value `2 �ac@�...], error=[ERR Bad data format]]

环境信息(Environment)

  • RedisShake 版本(RedisShake Version):v4.0.2
  • Redis 源端版本(Redis Source Version):v7.0.10
  • Redis 目的端版本(Redis Destination Version):v6.0.8
  • Redis 部署方式(standalone/cluster/sentinel):standalone
  • 是否在云服务商实例上部署(Deployed on Cloud Provider):

日志信息(Logs)

如果有错误日志或其他相关日志,请在这里提供。 image

If there are any error logs or other relevant logs, please provide them here.

其他信息(Additional Information)

请提供任何其他相关的信息,如配置文件、错误信息或截图等。

Please provide any additional information, such as configuration files, error messages, or screenshots.

wangshuang0220 avatar Nov 06 '23 01:11 wangshuang0220

#631 一样的问题,修改target_redis_proto_max_bulk_len值为0,rdb阶段同步stream数据不报错了

wangshuang0220 avatar Nov 06 '23 06:11 wangshuang0220

说明源端和目的端版本不一致

suxb201 avatar Nov 06 '23 06:11 suxb201

说明源端和目的端版本不一致

  • redis6->redis6 不报错
  • redis6->redis7 不报错
  • redis7->redis7 不报错
  • redis7->redis6 报错

报错通过target_redis_proto_max_bulk_len = 0 解决,有什么问题或者隐患吗?感谢及时回复

wangshuang0220 avatar Nov 06 '23 06:11 wangshuang0220

@wangshuang0220 7 到 6 报错是因为有编码不支持。target_redis_proto_max_bulk_len = 0 会让 shake 帮忙完成解码转成命令发送至远端,只是慢点,没有隐患。

suxb201 avatar Jan 03 '24 11:01 suxb201