MySQL 8.0 参考手册  / 第十七章复制  / 17.5 复制注意事项和技巧  /  16.4.5 如何报告复制错误或问题

16.4.5 如何报告复制错误或问题

当您确定没有涉及用户错误,并且复制仍然根本不起作用或不稳定时,就该向我们发送错误报告了。我们需要从您那里获得尽可能多的信息,以便能够追踪错误。请花一些时间和精力准备一份好的错误报告。

如果您有一个可重复的测试用例来演示错误,请使用第 1.6 节“如何报告错误或问题”中给出的说明将其输入我们的错误数据库。如果您有一个 幻影问题(您不能随意复制的问题),请使用以下过程:

  1. 验证没有涉及用户错误。例如,如果您在复制线程之外更新副本,数据就会不同步,并且您可能会在更新时遇到唯一键冲突。在这种情况下,复制 SQL 线程停止并等待您手动清理表以使它们同步。这不是复制问题。是外界干扰导致复制失败的问题。

  2. --log-slave-updates使用和 --log-bin选项 运行副本 。这些选项使副本将从源接收的更新记录到自己的二进制日志中。

  3. 在重置复制状态之前保存所有证据。如果我们没有信息或只有粗略的信息,我们就很难或不可能追查到问题所在。您应该收集的证据是:

    • 来自源的所有二进制日志文件

    • 来自副本的所有二进制日志文件

    • SHOW MASTER STATUS发现问题时源 的输出

    • SHOW SLAVE STATUS发现问题时副本 的输出

    • 来自源和副本的错误日志

  4. 使用mysqlbinlog检查二进制日志。以下应该有助于找到问题陈述。 是 log_file和 的 值 。 log_posMaster_Log_FileRead_Master_Log_PosSHOW SLAVE STATUS

    $> mysqlbinlog --start-position=log_pos log_file | head

在收集到问题的证据后,首先尝试将其作为单独的测试用例隔离。然后使用第 1.6 节“如何报告错误或问题”中的说明,将问题和尽可能多的信息输入到我们的错误数据库中。