在论坛上看到一个面试题,感觉很有意思,不知道大家有没有遇到过这样的问题,趁着这个问题还热乎着,大家一起来看一下:
master_slave_server_id.png (77.27 KB, 下载次数: 11)
master_slave_server_id
2012-10-8 15:02 上传
两种情况,
第一种情况:两个slave有同样的server-id会有什么问题?
第二种情况:如果是级联复制,再级联复制的路径上有相同的server-id会有什么问题。
其实很简单,只要你搭建复制,做一些简单的操作,你就能发现问题。
在第一个场景下,你会发现两个slave在不断的重连master,日志里面也会有错误信息,说slave被断掉,尝试重连,并且也连上去了。然后又被断掉,又重连…循环往复。
第二个场景,最后一个slave不能得到master的变更,在master上做的任何操作都不会应用到最后一个slave上。
MySQL复制的原理这边就不详细描述。简单的说,就是如果开启了log-bin记录二进制日志,master会在自己的binlog中记录下变更发生的时间,query(如果是Row的话会转成具体的行变更),server-id等信息,然后当slave请求(请求的