redis主从复制停止工作

标签 redis replication database-replication master-slave

我正在尝试找出如何对我的 redis 主/从复制进行故障排除。它“刚刚停止”工作。

设置信息

假设我的主人的IP地址是10.1.2.3

这是我迄今为止检查过的内容:

  1. 我已经在主服务器和从服务器上重新启动了 redis...但是每当我在从服务器上运行 INFO REPLICATION 时,它都会将链接显示为“已关闭”

  2. 在主服务器和从服务器上运行 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/

    相关文章:

    node.js - nodejs-express - 在主数据库上实现 Redis 缓存作为 mongodb

    使用 SSL 时 Azure Redis 连接失败

    mysql - 为什么在 MySQL 复制中使用 GTID?

    MySQL 组复制或单个服务器就足够了?

    java - 使用Jedis的Redis中单个键占用的内存?

    redis - 在命令提示符下获取 Redis 键和值

    r - 年份顺序与组

    typescript - 如何在 NestJS 中配置 TypeORM 以使用 postgres 复制?

    java - 为什么 Postgres Replication Stream 在单独的函数中使用时不起作用?

    mysql - MySQL集群可以实现同步和异步复制吗?