Veja a figura abaixo, ela representa como a replicação assíncrona funciona no MySQL:
Levando em consideração a numeração na figura, entenda como o processo funciona:
- Item numero 1 na figura representa os clientes executando queries no master, note que o master é capaz de processar múltiplas conexões simultaneamente (que pode ser configurado pela variável
max_connections
). - O Master executa essas queries, e salva elas em forma de log (item numero 2 na figura) para que o(s) slave(s) possa(m) replica-las e assim ter os mesmo dados que o servidor Master.
- O slave por sua vez, trabalha com 2 threads para replicar os dados do servidor Master:
IO_THREAD
– responsável por conectar-se ao Master, e buscar as novas transações do binary log (item numero 3 na figura) e gravar-las em seu log(relay log, item numero 4 na figura) para posteriormente serem aplicadas ao servidor slave.
SQL_THREAD
– responsável por ler as novas transações do relay log (item numero 5 na figura) e aplica-las no servidor slave (item numero 6 na figura).