面试时...
- 面试官:说下MySql中的主从复制是怎么实现的
- 我:...MySql主从主要分为Master数据库和Slave数据库,主数据库收到数据库修改请求后,会发送对应的SQL语句给从数据库,从数据库会通过这个SQL语句还原对应的数据出来,此时就完成了主从复制
- 面试官:好,行
解答方法
- 首先主数据库写入数据后,会将操作同步到binlog里面
- 此时主数据库会新建一个dump线程,向从数据库推送对应的数据
- 然后从数据库会新建一个IO线程来接受主数据库发送过来的binlog日志,写入到relay log的中继日志中
- 随后从数据库会再启动一个SQL线程,读取relay log并执行,还原主数据库中的数据
- 最后从数据库在执行SQL语句的同时,会将其记录到binlog里面,此时主从复制就已经完成
知识点解释
binlog
binlog是SQL的操作日志,所有执行的SQL语句都会同时记录到binlog里面。
一般情况下下,若数据库文件损坏的时候,可以考虑使用binlog来对数据库进行复原