• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 如何报告复制错误或问题

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

    如果您有一个可重复的测试用例来演示该错误,请按照“如何报告错误或问题”中的说明将其输入到我们的错误数据库中。如果您遇到“幻影”问题(无法随意复制的问题),请使用以下过程:

    1. 验证是否不涉及用户错误。例如,如果在从属线程之外更新从属,数据将失去同步,并且更新时可能会遇到唯一的密钥冲突。在这种情况下,从属线程停止并等待您手动清理表以使其同步。这不是复制问题。这是外部干扰导致复制失败的问题。
    2. 确保从属服务器在启用了二进制日志记录(log_bin系统变量)并且--log-slave-updates启用了选项的情况下运行,这将导致从属服务器将从主服务器接收的更新记录到自己的二进制日志中。这些设置是默认设置。
    3. 重置复制状态之前,请保存所有证据。如果我们没有信息或只有粗略的信息,那么我们很难或不可能找到问题所在。您应收集的证据是:

      • 来自主数据库的所有二进制日志文件
      • 从站的所有二进制日志文件
      • SHOW MASTER STATUS发现问题时主机的输出
      • SHOW SLAVE STATUS发现问题时从站的输出
      • 来自主服务器和从服务器的错误日志
    4. 使用mysqlbinlog检查二进制日志。以下内容将有助于查找问题陈述。log_filelog_pos是中的Master_Log_FileRead_Master_Log_PosSHOW SLAVE STATUS

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

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