ustify>
Clique aqui para ler todos os artigos desta edição
Replicação de dados no MySQL
Durante anos o MySQL vem ocupando seu espaço no mercado e servindo como solução de sistema gerenciador de banco de dados (SGBD) para muitas empresas. Por todo esse período, o MySQL foi visto como um banco de dados desenvolvido para aplicações de pequeno porte em que o quesito confiabilidade fosse mínimo ou em que o SGBD não fosse muito exigido. Além dessas visões preconceituosas, o MySQL ficou vinculado fortemente ao seu melhor parceiro: o PHP. Em função dessa grande e vitoriosa parceria, muitas organizações acreditavam que esse SGBD só pudesse ser utilizado em aplicações internet, fato que nem de longe é verdadeiro.
Atualmente o MySQL é o banco de dados com código aberto mais popular do mundo graças a sua excelente performance, alta confiabilidade e facilidade de uso. Se comparado aos outros SGBDs, o MySQL é o terceiro SGBD mais utilizado no mundo.
Sem querer entrar no mérito dessa discussão, a realidade é que o MySQL tem se mostrado um banco de dados bem robusto, confiável, de fácil instalação e manutenção
e com um custo de aquisição ínfimo (aproximadamente USD 550.00 – ver Nota1).
Além dessas características, a MySQL AB (empresa sueca que desenvolveu e possui a
marca registrada MySQL) está por trás desse SGBD, garantindo atualizações, correções de bugs e, o mais importante, através de parcerias no Brasil, fornecer treinamento especializado buscando certificar profissionais habilitados a dar suporte ao MySQL.
Nota 1. Custo de aquisição do MySQL
Existem dois tipos de licenciamento do MySQL: GPL e Comercial.
Na licença GPL, o MySQL pode ser utilizado gratuitamente desde que seja utilizado em conjunto com outra ferramenta GPL. O PHP é um bom exemplo.
Na licença comercial, o MySQL deve ser comprado para utilização com softwares que não sigam a GPL: Delphi, VB, etc. O preço varia entre USD 200.00 e USD 550.00, não existindo limite para licenças nos clientes. Ao adquirir o MySQL dessa forma, a licença é por servidor, ou seja, você poderá conectar quantos usuários desejar nesse SGBD sem pagar nenhum valor adicional.
O MySQL passou então a ser uma ótima solução para as empresas, pelos motivos já expostos e, principalmente, por implementar em suas recentes versões uma série de funcionalidades (triggers, stored procedures, integridade referencial etc).
De todas as funcionalidades que o MySQL dispõe, existe uma que é pouco conhecida mas que é muito importante para a vida dos DBAs: a replicação de dados.
A grande maioria dos profissionais da área de TI, principalmente os DBAs, conhecem o conceito de replicação de dados em SGBD. É um conceito bem simples e de fácil compreensão.
A replicação pode ser definida como a duplicação dos dados e, conseqüentemente, informações, presentes em um banco de dados para outro banco de dados buscando
a alta disponibilidade dos dados. De uma forma prática, esse mecanismo permite a manutenção de várias cópias idênticas de um mesmo dado em vários bancos de dados.
Ao longo desse artigo será explorado o uso de replicações em bases de dados MySQL, mostrando desde seus benefícios, os passos para sua configuração até um teste
prático do uso de replicações de dados realizado em um banco de dados de exemplo.
Replicação de dados no MySQL
O MySQL permite um tipo de replicação conhecido como master-slave, onde um servidor atuará como master e um ou mais servidores atuarão como slaves.
No MySQL, o servidor master grava as alterações em seus arquivos de logs binários e mantém um índice desses arquivos. O log binário serve como um registro das
alterações a serem enviadas aos servidores slave. Quando o servidor slave se conecta ao seu master (através de um usuário criado no banco de dados master), ele informa a
posição a partir da última leitura de atualização do log binário efetuada com sucesso, permitindo que os dados sejam sincronizados. O slave recebe as atualizações através
do log binário do master e atualiza seus dados, aguardando então por uma nova notificação do master no tocante às atualizações.
Quando utilizamos replicação no MySQL, todas as atualizações devem ser feitas no servidor master. A Figura 1 ilustra esse processo.
Figura 1. Processo de replicação master-slave.
Existem alguns fatores importantes que devem ser considerados sobre a replicação de dados no MySQL:
• o servidor master não monitora falhas nos servidores slaves e tampouco sabe quantos servidores slaves estão conectados a eles;
• o servidor slave em caso de falha no servidor master não assume automaticamente o lugar de servidor master;
• o tempo de sincronismo é ditado pelo servidor master e não pode ser configurado. Em todos os testes e implantações que realizei, quando o servidor master era atualizado, imediatamente o servidor slave era replicado.
...