Skip to content

redis-shake无法从源库db1同步到目标分片集群 #1002

@xiongzhen27

Description

@xiongzhen27

问题描述(Issue Description)

mode]\n\t\t\tRedisShake/internal/writer/redis_standalone_writer.go:155 -> (*redisStandaloneWriter).processReply()\n\t\t\truntime/asm_amd64.s:1650 -> goexit()"}

环境信息(Environment)

  • RedisShake 版本 redis-shake version v4.4.1 linux/amd64 (Git SHA: 307a284)
  • Redis 源端版本 redis_version:5.0.6
  • Redis 目的端版本redis_version:5.0.6
  • Redis 部署方式: 源 standalone 目标 cluster
  • 是否在云服务商实例上部署 均为内部自建

配置
grep -v ^$ shake.toml|grep -v ^#
[sync_reader]
cluster = false # Set to true if the source is a Redis cluster
address = "10.192.102.42:7930" # For clusters, specify the address of any cluster node; use the master or slave address in master-slave mode
username = "" # Keep empty if ACL is not in use
password = "xxxxxxxx" # Keep empty if no authentication is required
tls = false # Set to true to enable TLS if needed
sync_rdb = true # Set to false if RDB synchronization is not required
sync_aof = true # Set to false if AOF synchronization is not required
prefer_replica = false # Set to true to sync from a replica node
try_diskless = false # Set to true for diskless sync if the source has repl-diskless-sync=yes
[redis_writer]
cluster = true # set to true if target is a redis cluster
address = "10.192.2.30:7006" # when cluster is true, set address to one of the cluster node
username = "" # keep empty if not using ACL
password = "xxxxxxxx" # keep empty if no authentication is required
tls = false
off_reply = false # turn off the server reply
[filter]
allow_keys = []
allow_key_prefix = []
allow_key_suffix = []
allow_key_regex = []
block_keys = []
block_key_prefix = []
block_key_suffix = []
block_key_regex = []
allow_db = [1]
block_db = []
allow_command = []
block_command = []
allow_command_group = []
block_command_group = []
function = ""
[advanced]
dir = "data"
ncpu = 0 # runtime.GOMAXPROCS, 0 means use runtime.NumCPU() cpu cores
pprof_port = 0 # pprof port, 0 means disable
status_port = 0 # status port, 0 means disable
log_file = "shake.log"
log_level = "info" # debug, info or warn
log_interval = 5 # in seconds
log_rotation = true # enable log rotation
log_max_size = 512 # MiB, logs max size to rotate, default 512 MiB
log_max_age = 7 # days, logs are kept, default 7 days
log_max_backups = 3 # number of log backups, default 3
log_compress = true # enable log compression after rotate, default true
rdb_restore_command_behavior = "panic" # panic, rewrite or skip
pipeline_count_limit = 1024
target_redis_client_max_querybuf_len = 1073741824 # 1GB in bytes
target_redis_proto_max_bulk_len = 512_000_000
aws_psync = "" # example: aws_psync = "10.0.0.1:6379@nmfu2sl5osync,10.0.0.1:6379@xhma21xfkssync"
empty_db_before_sync = false
[module]
target_mbbloom_version = 20603

日志信息(Logs)

tail data/shake.log
{"level":"info","time":"2025-12-12T14:50:07+08:00","message":"read_count=[0], read_ops=[0.00], write_count=[0], write_ops=[0.00], receiving rdb, size=[1.1 GiB/2.5 GiB]"}
{"level":"info","time":"2025-12-12T14:50:12+08:00","message":"read_count=[0], read_ops=[0.00], write_count=[0], write_ops=[0.00], receiving rdb, size=[2.1 GiB/2.5 GiB]"}
{"level":"error","time":"2025-12-12T14:50:17+08:00","message":"[writer_10.192.2.30_7006] receive reply failed. cmd=[select 1], error=[ERR SELECT is not allowed in cluster mode]\n\t\t\tRedisShake/internal/writer/redis_standalone_writer.go:155 -> (*redisStandaloneWriter).processReply()\n\t\t\truntime/asm_amd64.s:1650 -> goexit()"}
{"level":"error","time":"2025-12-12T14:50:17+08:00","message":"[writer_10.192.18.1_7008] receive reply failed. cmd=[select 1], error=[ERR SELECT is not allowed in cluster mode]\n\t\t\tRedisShake/internal/writer/redis_standalone_writer.go:155 -> (*redisStandaloneWriter).processReply()\n\t\t\truntime/asm_amd64.s:1650 -> goexit()"}
{"level":"info","time":"2025-12-12T14:50:17+08:00","message":"read_count=[4], read_ops=[0.80], write_count=[4], write_ops=[0.80], syncing rdb, size=[0 B/2.5 GiB]"}
{"level":"error","time":"2025-12-12T14:50:18+08:00","message":"[writer_10.192.1.42_7007] receive reply failed. cmd=[select 1], error=[ERR SELECT is not allowed in cluster mode]\n\t\t\tRedisShake/internal/writer/redis_standalone_writer.go:155 -> (*redisStandaloneWriter).processReply()\n\t\t\truntime/asm_amd64.s:1650 -> goexit()"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions