redis-full-check比较两个集群的数据报错如下;请帮看下问题在哪
24条回答 默认 最新
关注
获得0.30元问题酬金 引自免费微信小程序:皆我百晓生
针对您提供的日志信息,我们可以分析出以下可能导致Redis全量数据比较出错的原因:
问题1:源集群节点列表格式错误
在
comparekey.sh
脚本中,源集群节点列表-s
参数的部分格式有误:-s "10.161.16.152:2000;10.153:2000;10.161.16.154:2000"
这里第二个节点地址
10.153:2000
缺少IP地址段(例如.161.16
),导致其不是一个有效的IP地址。正确格式应为:-s "10.161.16.152:2000;10.161.16.153:2000;10.161.16.154:2000"
问题2:目标集群节点列表格式错误
同样地,在目标集群节点列表
-t
参数的部分也存在格式错误:-t "10.161.20.174:2000;10.161.20.175:2000;10.161.20.176:20.161.177:2000.161.178:2000;10.179:2000;10.161.20.180:2000;10.161.20.181:2000;10.161.20.182:2000"
其中第四个节点
10.161.20.176:20.161.177:2000
和第五个节点10.161.178:2000
的格式均不正确。修复后的正确格式应为:-t "10.161.20.174:2000;10.161.20.175:2000;10.161.20.176:2000;10.161.20.177:2000;10.161.20.178:2000;10.161.20.179:2000;10.161.20.180:2000;10.161.20.181:2000;10.161.20.182:2000"
问题3:密码参数格式错误
密码参数
-p
和-a
后面的值均被截断,只显示到Re414@P154Z
和Re414@P154Z9cz3
,可能是由于日志输出限制或其他原因。请确保这两个参数传递的密码是完整的,并且与对应集群的实际密码匹配。问题4:源和目标集群类型识别错误
日志中提到:
[INFO 2024-04-18-19:24:47 full_check.go:238]:sourceDbType=1,p.sourcePhysicalDBList=[10.152:2000 10.161.16.153:2000 10.161.16.154:2000]
这里显示源集群类型为
1
,但根据提供的脚本,源集群节点数量为3个,通常情况下这表示一个主从复制结构的集群。然而,日志中的keys=0(inaccurate for type cluster)
提示可能认为这是一个集群模式(Redis Cluster)而非主从模式。请确认源集群的实际类型,并确保--sourcedbtype
参数设置正确。对于目标集群,同样需要检查其实际类型和
--targetdbtype
参数的设置是否一致。解决步骤建议:
-
修正节点列表格式错误:按照上述分析,修复源集群节点列表
-s
和目标集群节点列表-t
的格式错误。 -
验证并提供完整密码:确认并提供完整的源集群和目标集群密码给
-p
和-a
参数。 -
确认集群类型并设置相应参数:核实源集群和目标集群的实际类型(主从复制结构或Redis Cluster),并确保
--sourcedbtype
和--targetdbtype
参数分别设置为正确的值(如:--sourcedbtype=0
表示主从模式,--sourcedbtype=1
可能表示集群模式)。 -
重新运行比较:修正以上问题后,重新执行修复后的
comparekey.sh
脚本进行全量数据比较。
按照上述建议调整参数和配置后,应能解决Redis全量数据比较过程中遇到的问题。如果问题依然存在,请进一步检查网络连接、防火墙设置、Redis服务状态等因素,确保对比工具能够正常连接到源和目标集群的所有节点。
解决 无用评论 打赏 举报 编辑记录-