我正在尝试找出如何对我的 redis 主/从复制进行故障排除。它“刚刚停止”工作。
设置信息
假设我的主人的IP地址是10.1.2.3
这是我迄今为止检查过的内容:
我已经在主服务器和从服务器上重新启动了 redis...但是每当我在从服务器上运行 INFO REPLICATION 时,它都会将链接显示为“已关闭”
在主服务器和从服务器上运行 netstat -lnp。这是主机的输出:
masterdb:~# netstat -lnp | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 21611/redis-server tcp 0 0 10.1.2.3:6379 0.0.0.0:* LISTEN 21611/redis-server
从从机:
slavedb:~# netstat -lnp | grep 6379 tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 5577/redis-server tcp 0 0 :::6379 :::* LISTEN 5577/redis-server slavedb:~#
- 我检查了主服务器和从服务器上的日志,没有看到任何错误消息。但我在从属设备上看到超时消息...我想我以前见过,即使复制正在工作。从站上的日志如下所示:
5577:S 26 Oct 13:17:19.510 * MASTER <-> SLAVE sync started 5577:S 26 Oct 13:18:20.597 # Timeout connecting to the MASTER... 5577:S 26 Oct 13:18:20.597 * Connecting to MASTER 10.1.2.3:6379 5577:S 26 Oct 13:18:20.597 * MASTER <-> SLAVE sync started 5577:S 26 Oct 13:19:21.685 # Timeout connecting to the MASTER...
当我在从属设备上启动 redis-cli 并重新发出 Slaveof 命令时,我收到以下消息:
127.0.0.1:6379> 10.1.2.3 6379 的奴隶 OK 已经连接到指定的master 127.0.0.1:6379>
我还在 master 上尝试了以下命令:
127.0.0.1:6379> save OK 127.0.0.1:6379> bgsave Background saving started 127.0.0.1:6379>
但这并没有解决奴隶身上的任何问题。当我检查 REPLCIATION 上的信息时,它仍然说链接已关闭:
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:10.1.2.3
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:1
master_link_down_since_seconds:1477488462
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
我不知道还要检查什么。
最佳答案
听起来像是网络问题。尝试
下次发生时从从属设备telnet masterip 6379
以确保这是网络问题。
关于redis主从复制停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40263963/