Comments (21)
刚试了最新版本的也报这个错误,
improve-1.2.3,6125a52fc920762dae57c2ae5bb35e3e6ba0e0de,go1.10.3,2019-04-13_15:27:05
我的配置如下:
id = redis-shake
log_file = /tmp/shake.log
system_profile = 9310
http_profile = 9320
ncpu = 0
parallel = 4
input_rdb = local_dump
output_rdb = local_dump
source.address = 192.168.x.x:10379
source.password_raw = 123456
source.auth_type = auth
source.version = 7
target.address = 172.1.x.x:6382
target.password_raw = 123456
target.auth_type = auth
target.version = 7
target.db = -1
fake_time =
rewrite = true
filter.db =
filter.key =
filter.slot =
big_key_threshold = 524288000
psync = false
metric = true
metric.print_log = true
heartbeat.url =
heartbeat.interval = 3
heartbeat.external = test external
heartbeat.network_interface =
sender.size = 104857600
sender.count = 5000
sender.delay_channel_size = 65535
replace_hash_tag = false
extra = false
from redisshake.
这个应该是增量同步到目的端,目的端断开连接了。确认下目的端redis的状态。
from redisshake.
执行同步命令:
./bin/redis-shake.linux64 -type=sync -conf=redis-shake.conf
在源的redis(codis的一个分片的master)日志打印:
3473:M 24 Apr 07:21:50.650 * Slave 172.17.x.x: asks for synchronization
3473:M 24 Apr 07:21:50.650 * Starting BGSAVE for SYNC with target: disk
3473:M 24 Apr 07:21:50.654 * Background saving started by pid 28065
28065:C 24 Apr 07:21:52.373 * DB saved on disk
28065:C 24 Apr 07:21:52.375 * RDB: 66 MB of memory used by copy-on-write
3473:M 24 Apr 07:21:52.394 * Background saving terminated with success
3473:M 24 Apr 07:21:56.622 * Synchronization with slave 172.17.x.x: succeeded
3473:M 24 Apr 07:22:01.011 # Connection with slave 172.17.x.x lost.
然后redis-shake进程退出,在源的redis上info查看,redis-shake这个slave也掉了
from redisshake.
验证了redis_version:5.0.2到redis_version:5.0.2 的同步也是这个问题,100%重现
from redisshake.
掉应该是表象,主要原因是和目的的连接断了,然后shake退出了,自然和源端的连接也断掉了。
你目的端查看正常吗?是不是目的端网络抖动了
from redisshake.
我先说明下环境,我这是在阿里云vpc内部,网络应该是没有问题的,为了验证你说的目的网络抖动的问题,我把redis-shake和目的redis放在一台机器上,问题依旧,然后我测了源也是redis 5.0.2的正常,把源换成codis的redis-server就不行,我怀疑还是和这个有关系,每次全量同步完就断了,100%出现,应该和网络抖动没关系,能帮忙定位下是哪里出问题了嘛。
源:172.17.110.80 redis_version:3.2.4 (codis)
目标:172.17.37.91 redis_version:5.0.2
redis-shake:172.17.37.91 improve-1.2.3,6125a52fc920762dae57c2ae5bb35e3e6ba0e0de,go1.10.3,2019-04-13_15:27:05
from redisshake.
捞一下整个日志给我吧,或者私信发我微信,加我一下,README里面最后有我的个人微信账号
from redisshake.
目的端redis压力正常吗?配置参数中有个sender.count的参数,修改成0看看
from redisshake.
目的端redis没有访问,是我测试用的redis,我加你微信吧
from redisshake.
from redisshake.
用户反馈源端没有写入。
建议排查下目的端的情况,负载,redis的日志。
这个问题不是shake的问题。是目的端断开连接。
from redisshake.
from redisshake.
我这边遇到的问题是proxy端报错,然后复制断开了:
parsed unsupported command 'select'
from redisshake.
@IT-xiaoge 完整的错误日志贴一下,源端和目的端版本是什么?
from redisshake.
@IT-xiaoge 完整的错误日志贴一下,源端和目的端版本是什么?
我源端是redis cluster,目的端是twemproxy。报错的时候,我看到proxy里面的wf log是“parsed unsupported command 'select'”,工具有可能发出select命令吗?
from redisshake.
@IT-xiaoge 理论上不应该,你可以开debug日志确认下,所有发送的命令都有记录。
from redisshake.
@IT-xiaoge 有什么结论吗?
from redisshake.
@IT-xiaoge 有什么结论吗?
日志里面记录的是有发送select操作的:
[DEBUG] dbSyncer[1] send command[1]: [select [0]]
dbSyncer[1] Event:NetErrorWhileFlush Id:redis-shake Error:write tcp xxxx->xxxx: use of closed network connection
Event:NetErrorWhileReceive Id:redis-shake Error:EOF
这里感觉像是连接超时了
from redisshake.
理论上只有收到源端的select命令,shake才会向目的端进行转发。这块你可以钉钉联系我一下,必现的话,配合抓包一起看一下。
from redisshake.
请问一下这个问题解决了吗?
我这边也碰到同样的问题。codis导向twemproxy架构, 从proxy的日志上看,shake端发出select命令,proxy不支持命令则改close连接。
nc_redis.c:943 parsed unsupported command 'select'
同一时间codis没有抓取到select命令。
而shake的debug日志来看,做完全量同步之后发起select命令。
[DEBUG] dbSyncer[0] send command[1]: [select [0]]
[DEBUG] dbSyncer[0] send command[2]:xxx
[DEBUG] dbSyncer[0] send command[3]:xxx
[DEBUG] dbSyncer[0] send command[4]:xxx
[DEBUG] dbSyncer[0] send command[5]:xxx
[DEBUG] dbSyncer[0] send command[6]:xxx
[DEBUG] dbSyncer[0] send command[7]:xxx
[DEBUG] dbSyncer[0] send command[8]:xxx
[DEBUG] dbSyncer[0] send command[9]:xxx
[DEBUG] dbSyncer[0] send command[10]:xxx
[DEBUG] dbSyncer[0] send command[11]:xxx
[DEBUG] dbSyncer[0] send command[12]:xxx
[DEBUG] dbSyncer[0] send command[13]:xxx
[DEBUG] dbSyncer[0] send command[14]:xxx
[DEBUG] dbSyncer[0] send command[15]:xxx
[DEBUG] dbSyncer[0] receive reply-id[1]: [], error:[EOF]
[PANIC] dbSyncer[0] Event:NetErrorWhileReceive Id:codis Error:EOF
from redisshake.
twemproxy我记得只支持db 0的,这个你升级到2.0版本试试,我优化了这个driver
from redisshake.
Related Issues (20)
- 如何终止 PSYNC 命令? HOT 1
- scan 复制,进度卡在92.29% HOT 6
- AWS ElasticCache不支持psync命令 HOT 1
- 增量同步的原理和主从同步sentinel粘连问题 HOT 9
- PNC ERR unknown command 'REPLCONF' HOT 4
- rdb_restore_command_behavior. failed HOT 4
- 怎么配置源端和目标端的tls证书 HOT 1
- redis-shake 4.0监控指标说明 HOT 5
- 如何只做全量迁移,不做增量迁移 HOT 4
- rdb文件解析为json格式进行存储 HOT 1
- 能否支持布隆过滤器 HOT 2
- 本地自建redis 同步到阿里云redis报错 HOT 1
- redis-shake 4.0支持部分key 迁移吗? HOT 14
- 实时同步异常 HOT 1
- redis-shake是否支持Pika HOT 1
- read: connection reset by peer HOT 5
- target为redis cluster时节点解析失败 HOT 2
- v4 版本在同步的时候报warning HOT 1
- Redis-shake4.0没有写入Target集群就结束了 HOT 14
- 运行过程中short write退出了,抓包发现工具发了rst。请教这是什么情况呢? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redisshake.