Replicação MySQL – Introdução

Ola pessoal,

Antes de configurarmos uma replicação no MySQL, é importante entendermos como ela funciona, por isso neste post vamos tratar de uma breve introdução a replicação Master x Slave no MySQL.

O MySQL por default já oferece suporte para Replicação. Funciona por um mecanismo assíncrono, unidirecional com o fornecimento de logs (binários) entre um servidor Master / Slave. Quando um servidor é denominado como Master, este recebe todas as atualizações (insert, alter, update), onde o Slave recebe todas as atualizações que ocorrem com êxito no master, mantendo desta forma os dados íntegros do servidor Master.

O Slave muitas vezes é definido como Ready Only, sendo possível apenas efetuar consultas (select) neste servidor, e demais comandos de alteração devem ser aplicados no servidor Master.

Existem Threads pré definidas no MySQL responsáveis pela comunicação entre os servidores, que são:

IO_THREAD – Responsável pela conexão entre o servidor Master X Slave e pelo download dos logs binarios entre a origem (Master) ao destino (Slave). Ao fazer o download dos logs binarios do servidor Master, o IO_THREAD armazena estes logs no relay log (Slave), arquivo que o Slave vai ler para aplicar as transações.

SQL_THREAD – Esta é a thread que aplica todos os logs obtidos no relay log no servidor Slave.

Resumindo (POR CIMA), o primeiro se conecta e obtem os logs do Master, e o segundo executa os logs obtidos no servidor Slave.

Uma imagem que resume muito bem este cenário:

AR

Imagem obtida no site: http://www.devmedia.com.br/

Não existe um limite definido de quantos slaves um único master pode ter abaixo dele. Como um servidores Slave consome uma quantidade pequena de recursos, este limite é baseado na disponibilidade do ambiente como em quantidade de consultas, escrita, disponibilidade de memória & Cpu entre outros. Se citarmos uma bala de “prata”, não é recomendável ter a mais de 30 slaves sob um master.
Continue lendo