AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 38753
Accepted
theotherreceive
theotherreceive
Asked: 2009-07-10 19:11:32 +0800 CST2009-07-10 19:11:32 +0800 CST 2009-07-10 19:11:32 +0800 CST

诊断 Mysql 复制问题

  • 772

我们的备份服务器上运行着一个 mysql 复制客户端。自上周停电以来,它已停止复制。在此之前,它连续运行了几个月。

我已经尝试重新启动主机和从机,但这没有帮助。我可以从从属服务器访问主服务器,所以网络不是问题。

我还能做些什么来尝试诊断问题所在吗?

mysql> show slave status\G;
*************************** 1. row ***************************
             Slave_IO_State:
                Master_Host: master
                Master_User: username
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000060
        Read_Master_Log_Pos: 46277494
             Relay_Log_File: mysqld-relay-bin.000348
              Relay_Log_Pos: 98
      Relay_Master_Log_File: mysql-bin.000060
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 46277494
            Relay_Log_Space: 98
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

ERROR:
No query specified


mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000069
        Position: 851796
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)

ERROR:
No query specified

更新:错误进入 daemon.log,而不是 mysql.err,这可以解释为什么我找不到它们。问题似乎是主控说日志不可用,这没有多大意义,因为主控上仍然可以使用该日志(和之前的日志)。

090710  9:17:35 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000060' at position 46277494, relay log './mysqld-relay-bin.000350' position: 98
090710  9:17:35 [Note] Slave I/O thread: connected to master 'username@master:3306',  replication started in log 'mysql-bin.000060' at position 46277494
090710  9:17:35 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
090710  9:17:35 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
090710  9:17:35 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000060', position 46277494
mysql mysql-replication
  • 5 5 个回答
  • 9375 Views

5 个回答

  • Voted
  1. Best Answer
    womble
    2009-07-11T00:30:04+08:002009-07-11T00:30:04+08:00

    欢迎来到 MySQL 复制的美妙世界。我自己没有遇到您的特定问题,但是我遇到了许多其他奇怪的问题,并且最近的解决方案是从主服务器重新同步,就好像它是一个全新的从服务器一样,然后完成它。

    • 7
  2. MarkR
    2009-07-10T19:27:17+08:002009-07-10T19:27:17+08:00

    您应该检查从属设备的错误日志——它通常非常明确地说明问题所在。

    您应该将 mysql 错误日志绑定到您的监控系统中,否则您的从站可能毫无价值。

    此外,您应该有一个监视器来检查从站状态。

    而且为了完全有用,您还需要不时检查从属设备的同步,也许通过使用 mk-table-checksum 之类的东西;理想情况下,也将其结果与您的监控系统联系起来。

    • 2
  3. kashani
    2009-07-10T19:56:34+08:002009-07-10T19:56:34+08:00

    许多人设置 skip-slave-start 是为了确保如果从站在启动之前停止复制,一切正常。尝试运行'start slave'并查看是否有任何变化或是否记录了某些内容。此外,奇怪的是 SlaveSQL 进程正在运行而 SlaveIO 没有。从属设备上的本地中继日志可能已损坏,但应在日志中报告。您可以尝试关闭 Mysql,然后删除中继日志。

    • 2
  4. user49957
    2010-08-03T01:25:50+08:002010-08-03T01:25:50+08:00

    正如 womble 所提到的,忘记解决复制错误。这种方法最让我担心的是,您可能会成功地让复制再次重新启动并认为一切都很好,但是如果您的数据库的某些部分仍然不同步怎么办?

    最好的办法是核对从数据库并从主数据库的快照重新启动复制。它不应该像您想象的那样具有破坏性:

    http://www.neotitans.com/resources/mysql/quick-replication-error-recovery-via-snapshots.html

    • 2
  5. Bakshu
    2013-09-17T04:43:40+08:002013-09-17T04:43:40+08:00

    从上面的报告中我发现了问题,这个字段必须设置为(Slave_IO_Running):是的,但在上面的报告中它显示 Slave_IO_Running:否。

    这就是导致问题的原因,如果此变量显示为“否”,则导致 IO 线程停止。所以不再有复制。您必须检查 Last_SQL_Errno 和 Last_SQL_Err 以获取有关原因的更多信息。错误编号 0 和空字符串的消息表示“没有错误”。Last_SQL_Error 出现在从站的错误日志中。

    要解决此问题,请停止从站

    然后设置:

    mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
    

    这告诉从属服务器跳过一个查询(这是导致复制停止的无效查询)。如果您想跳过两个查询,您可以使用 SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 2; 而是等等。

    然后重新启动从站并检查日志,希望这能解决问题...

    • 1

相关问题

  • 跨地理位置不同的服务器的 MySQL 复制

  • 从 MySQL 迁移到 SQL Server 的最佳方法或工具

  • 您如何跟踪和调试 mySQL 性能问题?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve