第6章:MySQL中的复制 / 6.11. 通报复制缺陷

如果你确定没有用户错误,但复制仍然不工作或不稳定,则是向我们发送bug通报的时候了。我们需要尽可能从你那儿获得更多的信息已跟踪bug。请花一些时间和努力编写一份好的bug通报。

如果你有一个重复的测试案例来说明bug,请把它输入我们的bug数据库,位置为http://bugs.mysql.com/。如果你有一个“phantom”问题(不能按照期望进行复制),则使用下面的程序:

1.    确认未包括用户错误。例如,如果你不用从服务器线程来更新从服务器,数据将不同步,并且会遇到唯一的键值违背更新。在这种情况下,从服务器线程停止并等待你手动清理表使它们同步。这不是复制问题。这是一个外部接口问题造成复制失败。

2.    --logs-slave-updates--logs-bin选项运行从服务器。这些选项使从服务器将从主服务器接收的更新记入自己的二进制日志。

3.    重新设置复制状态之前保存所有的证据。如果我们没有信息或只有粗略的信息,则难以或不可能跟踪问题。应搜集的证据为:

·         所有主服务器的二进制日志

·         所有从服务器的二进制日志

·         你发现问题时主服务器的SHOW MASTER STATUS的输出

·         你发现问题时主服务器的SHOW SLAVE STATUS的输出

·         主服务器和从服务器的错误日志

4.    使用mysqlbinlog检查二进制日志。下面命令应有助于发现有问题的查询,例如:

5.            shell> mysqlbinlog -j pos_from_slave_status \
6.                       /path/to/log_from_slave_status | head

搜集了问题的证据后,首先作为一个测试案例隔离开。然后将问题输入我们的bug数据库,位置为http://bugs.mysql.com/,应提供尽可能多的信息。